Part Number Hot Search : 
DTA114E SMG5402 7805S SSM3J AN4407 TFLB546G CXA2560 BFR505T
Product Description
Full Text Search
 

To Download PI7C8150BMAI-33 Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
  pi7c8150b asynchronous 2 - port pci - to - pci bridge revision 2.1 1545 b arber lane milpitas, ca 95035 telephone: 408-232-9100 fax: 408-434-1040 internet: http://www.pericom.com 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 2 of 107 april 20 15 C revision 2.1 life support policy pericom semiconductor corporations products are not authorized for use as critical components in life support devices or systems unless a specific written agreement pertaining to such intended use is executed between the manufacturer and an officer of psc. 1) life support devices or system are devices or systems which: a) are intended for surgical implant into the body or b) support or sustain life and whose failure to perform, when properly used in accordance with instructions for use provided in the labeling, can be reasonably expected to result in a significant injury to the user. 2) a critical component is any component of a life support device or system whose failure to perform can be reasonably expected to cause the failure of the life support device or system, or to affect its safety or effectiveness. pericom semiconductor corporation reserves the right to make changes to its products or specifications at any time, without notice, in order to improve design or performance and to supply the best possible product. pericom semiconductor does not assume any responsibility for use of any circuitry described other than the circuitry embodied in a pericom semiconductor product. the company makes no representations that circuitry described herein is free from patent infringement or other rights of third parties which may result from its use. no license is granted by implication or otherwise under any patent, patent rights or other rights, of pericom semiconductor corporation. all other trademarks are of their respective companies. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 3 of 107 april 20 15 C revision 2.1 revision history date revision number description 03/26/03 1.00 first release of data sheet 05/14/03 1.01 correction to description for bit[0] at offset 48h. changed from memory read flow through disable t o memory read flow through enable . added reset condition to offset 4ch, bits [31:28] 06/10/03 1.0 2 revised descriptions and added ordering information for pi7c8150b - 33 (33mhz) device revised temperature support to industrial temperature 06/25/03 1.03 rev ised temperature support back to extended commercial range (0c to 85c) corrected pin descriptions for s_m66en, p_m66en, and s_clkout. 07/31/03 1.031 corrected ms0 and ms1 pin assignments on table 2.4. ms0 should be b14 and ms1 should be r16. added pbga p in assignments to signal descriptions in section 2.2. revised power consumption specifications in section 17.6 revised tdelay specifications in sections 17.4 and 17.5 10/20/03 1.04 modified spacing on a few chapters. no changes to content. 02/13/04 1.05 corrected vdd and vss pin assignments on table 2.2.7. removed pins 106 and 155 (r16 and b14) as these should be ms1 and ms0 respectively. 05/20/04 1.06 added industrial temp and pb - free parts in the ordering information added ambient temperature spec fo r pi7c8150bi 07/06 / 04 1.061 added industrial temp and pb - free descriptions to the features section in the introduction 08/12/04 1.07 revised register description bits[31:24] offset 18h - secondary latency timer register (section 14.1.13) revised register description for bits[3:2] offset 48h C extended chip control register (section 14.1.31) 09/23/04 2.00 corrected configuration register offset 80h (bit[15:0] is secondary bus master timeout counter and bit[31:16] is primary bus master timeout counter) rev ised and added further descriptions for bit[15:0] offset 80h and bit[31:16] offset 80h 01/10/05 2.01 corrected note 4 to show req_l has a setup time of 12ns and gnt_l has a setup time of 10ns (section 17.3) 04/05/06 2.02 removed advance information tit le from headers removed email ( solutions@pericom.com ) link revised pci local bus specification compliance to 2.3 04/17 15 2.1 updated section 14 configuration registers 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 4 of 107 april 20 15 C revision 2.1 this page intentionally left blank. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 5 of 107 april 20 15 C revision 2.1 ta ble of contents 1 introduction ............................................................................................................................... 11 2 signal definitions .................................................................................................................... 12 2.1 s ignal t ypes ................................................................................................................................ 12 2.2 s ignals ......................................................................................................................................... 12 2.2.1 primary bus interface signals ........................................................................... 12 2.2.3 clock signals ................................................................................................................ 15 2.2.4 miscellaneous signals ............................................................................................ 16 2.2.5 general purpose i/o interface signals ......................................................... 17 2.2.6 jtag boundary scan signals ................................................................................. 17 2.2.7 power and ground ...................................................................................................... 18 2.3 pin list C 208-pin fqfp ............................................................................................................ 18 2.4 pin list C 256-ball pbga ....................................................................................................... 20 3 pci bus operation ...................................................................................................................... 22 3.1 types of transactions ...................................................................................................... 22 3.2 single address phase ......................................................................................................... 23 3.3 device select (devsel_l) generation ........................................................................ 23 3.4 data phase ............................................................................................................................... 23 3.5 write transactions ........................................................................................................... 23 3.5.1 memory write transactions ................................................................................. 23 3.5.2 memory write and invalidate ............................................................................. 24 3.5.3 delayed write transactions ................................................................................ 25 3.5.4 write transaction address boundaries ........................................................ 26 3.5.5 buffering multiple write transactions ...................................................... 26 3.5.6 fast back- to -back transactions ........................................................................ 26 3.6 read transactions ............................................................................................................. 27 3.6.1 prefetchable read transactions ..................................................................... 27 3.6.2 non -prefetchable read transactions ........................................................... 27 3.6.3 read prefetch address boundaries ................................................................ 27 3.6.4 delayed read requests ........................................................................................... 28 3.6.5 delayed read completion with target ......................................................... 29 3.6.6 delayed read completion on initiator bus ................................................. 29 3.6.7 fast back- to -back read transaction .............................................................. 30 3.7 configuration transactions ....................................................................................... 30 3.7.1 type 0 access to pi7c8150b ........................................................................................ 31 3.7.2 type 1 to type 0 conversion ................................................................................... 31 3.7.3 type 1 to type 1 forwarding .................................................................................. 32 3.7.4 special cycles .............................................................................................................. 33 3.8 transaction termination ............................................................................................... 34 3.8.1 master termination initiated by pi7c8150b .................................................. 35 3.8.2 master abort received by pi7c8 150b ................................................................ . 35 3.8.3 target termination received by pi7c8150b ................................................... 36 3.8.4 target termination initiated by pi7c8150b ................................................... 38 4 address decoding ...................................................................................................................... 41 4.1 address ranges .................................................................................................................... 41 4.2 i/o address decoding ......................................................................................................... 41 4.2.1 i/o base and limit address register ................................................................ . 42 4.2.2 isa mode ............................................................................................................................ 43 4.3 memory address decoding ............................................................................................. 43 4.3.1 memory-mapped i/o base and limit address registers .......................... 44 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 6 of 107 april 20 15 C revision 2.1 4.3.2 prefetchable memory base and limit address registers .................. 44 4.4 vga support ............................................................................................................................ 45 4.4.1 vga mode .......................................................................................................................... 46 4.4.2 vga snoop mode ............................................................................................................ 46 5 transaction ordering ........................................................................................................... 46 5.1 transactions governed by ordering rules ......................................................... 47 5.2 general ordering guidelines ....................................................................................... 47 5.3 ordering rules ..................................................................................................................... 48 5.4 data synchronization ..................................................................................................... 49 6 error handling .......................................................................................................................... 50 6.1 address parity errors ...................................................................................................... 50 6.2 data parity errors ............................................................................................................. 51 6.2.1 configuration write transactions to configuration space ........... 51 6.2.2 read transactions ..................................................................................................... 51 6.2.3 delayed write transactions ................................................................................ 52 6.2.4 posted write transactions ................................................................................... 54 6.3 data parity error reporting summary .................................................................. 56 6.4 system error (serr_l) reporting ................................................................................ 59 7 exclusive acce ss ....................................................................................................................... 60 7.1 concurrent locks .............................................................................................................. 60 7.2 acquiring exclusive access across pi7c8150b ...................................................... 60 7.2.1 locked transactions in downstream direction ...................................... 61 7. 2.2 locked transaction in upstream direction ............................................... 62 7.3 ending exclusive access ................................................................................................ . 62 8 pci bus arbitration .................................................................................................................. 63 8.1 primary pci bus arbitration .......................................................................................... 63 8.2 secondary pci bus arbitration .................................................................................... 64 8.2.1 secondary bus arbitration using the internal arbiter ..................... 64 8.2.2 preemption ..................................................................................................................... 65 8.2.3 secondary bus arbitration using an external arbiter ....................... 65 8.2.4 bus parking ..................................................................................................................... 65 9 clocks .............................................................................................................................................. 66 9.1 primary clock inputs ........................................................................................................ 66 9.2 secondary clock outputs .............................................................................................. 66 9.3 asynchronous mode .......................................................................................................... 66 10 general purpose i/o interface ..................................................................................... 67 10.1 gpio control registers .................................................................................................... 67 10.2 secondary clock control ............................................................................................. 68 10.3 live insertion ........................................................................................................................ 69 11 pci power management ..................................................................................................... 70 12 reset .............................................................................................................................................. 71 12.1 primary interface reset ................................................................................................ . 71 12.2 secondary interface reset ........................................................................................... 71 12.3 chip reset ................................................................................................................................ . 71 13 supported commands .......................................................................................................... 72 13.1 primary interface .............................................................................................................. 72 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 7 of 107 april 20 15 C revision 2.1 13.2 secondary interface ........................................................................................................ 73 14 configuration regist er s ................................................................................................ . 74 14.1 configuration register ................................................................................................... 74 14.1.1 vendor id register C offset 00h .......................................................................... 74 14.1.2 device id register C offset 00h ........................................................................... 75 14.1.3 command register C offset 04h ........................................................................... 75 14.1.4 status register C offset 04h ................................................................................. 76 14.1.5 revision id register C offset 08h ....................................................................... 77 14.1.6 class code register C offset 08h ........................................................................ 77 14.1.7 cache line size register C offset 0ch ............................................................. 77 14.1.8 primary latency timer register C offset 0ch ............................................ 77 14.1.9 header type register C offset 0ch .................................................................... 77 14.1.10 primary bus number registser C offset 18h ............................................. 77 14.1.11 secondary bus number register C offset 18h ......................................... 77 14.1.12 subordinate bus number register C offset 18h ..................................... 78 14.1.13 secondary latency timer register C offset 18h ................................... 78 14.1.14 i/o base register C offset 1ch ........................................................................... 78 14.1.15 i/o limit register C offset 1ch ......................................................................... 78 14.1.16 secondary status register C offset 1ch .................................................... 78 14.1.17 memory base register C offset 20h ............................................................... 79 14.1.18 memory limit register C offset 20h .............................................................. 79 14.1.19 pefetchable memory base register C offset 24h ................................ . 80 14.1.20 prefetchable memory limit register C offset 24h ............................. 80 14.1.21 prefetchable memory base address upper 32-bits register C offset 28h ........................................................................................................................................ 80 14.1.22 prefetchable memory limit address upper 32-bits register C offset 2ch ........................................................................................................................................ 80 14.1.23 i/o base address upper 16-bits register C offset 30h ........................... 80 14.1.24 i/o limit address upper 16-bits register C offset 30h .......................... 81 14.1.25 ecp pointer register C offset 34h .................................................................. 81 14.1.26 interrupt line register C offset 3ch .......................................................... 81 14.1.27 interrupt pin register C offset 3ch ............................................................. 81 14.1.28 br idge control register C offset 3ch ........................................................ 81 14.1.29 diagnostic / chip control register C offset 40h ................................... 83 14.1.30 arbiter control register C offset 40h ....................................................... 84 14.1.31 extended chip control register C offset 48h ........................................ 84 14.1.32 upstream memory control register C offset 48h ................................ 85 14.1.33 secondary bus arbiter preemption control register C offset 4ch ........................................................................................................................................... 85 14.1.34 upstream (s to p) memory base register C offset 50h ......................... 85 14.1.35 upstream (s to p) memory limit register C offset 50h ........................ 85 14.1.36 upstream (s to p) memory base upper 32-bits register C offset 54h ........................................................................................................................................... 86 14.1.37 upstream (s to p) memory limit upper 32-bits register C offset 58h ........................................................................................................................................... 86 14.1.38 p_serr_l event disable register C offset 64h ......................................... 86 14.1.39 gpio data and control register C offset 64h ......................................... 87 14.1.40 secondary clock control register C offset 68h .................................. 87 14.1.41 p_serr_l status register C offset 68h ......................................................... 88 14.1.42 port option register C offset 74h .................................................................. 88 14.1.43 retry counter register C offset 78h ........................................................... 90 14.1.44 secondary bus master timeout counter C offset 80h ........................ 90 14.1.45 primary bus master timeout counter C offset 80h .............................. 91 14.1.46 capability id register C offset b0h .............................................................. 91 14.1.47 next pointer register C offset b0h .............................................................. 91 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 8 of 107 april 20 15 C revision 2.1 14.1.48 slot number register C offset b0h ............................................................... 91 14.1.49 chassis number register C offset b0h ........................................................ 91 14.1.50 capability id register C offset dch .............................................................. 92 14.1.51 next item pointer register C offset dch .................................................. 92 14.1.52 power management capabilities register C offset dch .................. 92 14.1.53 power management data register C offset e0h .................................... 92 14.1.54 capability id register C offset e4h .............................................................. 93 14.1.55 next pointer register C offset e4h .............................................................. 93 15 bridge behavior ..................................................................................................................... 94 15.1 bridge actions for various cycle types ................................................................ . 94 15.2 abnormal termination (initiated by bridge master) ...................................... 94 15.2.1 master abort ................................................................................................................. 94 15.2.2 parity and error reporting ................................................................................. 94 15.2.3 reporting parity errors ........................................................................................ 95 15.2.4 secondary idsel mapping ....................................................................................... 95 16 ieee 1149.1 compatible jtag controller ................................................................ . 95 16.1 boundary scan architecture ...................................................................................... 95 16.1.1 tap pins ............................................................................................................................. 96 16.1.2 instruction register ............................................................................................... 96 16.2 boundary scan instruction set .................................................................................. 97 16.3 tap test data registers ................................................................................................... 98 16.4 bypass register .................................................................................................................... 98 16.5 boundary-scan register ................................................................................................ . 98 16.6 tap controller .................................................................................................................... 98 17 electrical and timing specifications .................................................................. 101 17.1 maximum ratings .............................................................................................................. 101 17.2 dc specifications ............................................................................................................... 102 17.3 ac specifications ............................................................................................................... 103 17.4 66mhz timing ......................................................................................................................... 103 17.5 33mhz timing ......................................................................................................................... 103 17.6 power consumption .......................................................................................................... 104 18 package information ....................................................................................................... 105 18.1 208 -pin fqfp package diagram ...................................................................................... 105 18.2 256 -ball pbga package diagram ................................................................................. 106 18.3 part number ordering information ....................................................................... 106 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 9 of 107 april 20 15 C revision 2.1 list of tables t able 2- 1. p in l ist C 208 - pin fqfp ............................................................................................................ 18 t able 2- 2. p in l ist C 256 - pin pbga ........................................................................................................... 20 t able 3- 1. pci t ransactions ..................................................................................................................... 22 t able 3- 2. w rite t ransaction f orwarding .......................................................................................... 23 t able 3- 3. w rite t ransaction d isconnect a ddress b oundaries ...................................................... 26 t able 3- 4. r ead p refetch a ddress b oundaries .................................................................................... 28 t able 3- 5. r ead t ransaction p refetching ............................................................................................ 28 t able 3- 6. d evice n umber to idsel s_ad p in m apping ...................................................................... 32 t able 3- 7. d elayed w rite t arget t ermination r esponse .................................................................. 36 t able 3- 8. r esponse to p osted w rite t arget t ermination ................................................................ 37 t able 3- 9. r esponse to d elayed r ead t arget t ermination ............................................................... 38 t able 5- 1. s ummary of t ransaction o rdering .................................................................................... 48 t able 6- 1. s etting the p rimary i nterface d etected p arity e rror b it ............................................ 56 t able 6- 2. s etting s econdary i nterface d etected p arity e rror b it .............................................. 56 t able 6- 3. s etting p rimary i nterface m aster d ata p arity e rror d etected b it .......................... 57 t able 6-4. s etting s econdary i nterface m aster d ata p arity e rror d etected b it ..................... 57 t able 6- 5. a ssertion of p_perr_l ......................................................................................................... 58 t able 6- 6. a ssertion o f s_perr_l ......................................................................................................... 58 t able 6- 7. a ssertion of p_serr_l for d ata p arity e rrors .............................................................. 59 t able 10 - 1. gpio o peration ..................................................................................................................... 68 t able 10 - 2. gpio s erial d ata f ormat ................................................................................................... 69 t able 11 - 1. p ower m anagement t ransitions ....................................................................................... 70 t able 16 - 1. tap p ins .................................................................................................................................. 97 t able 16 - 2. jtag b oundary r egister o rder ........................................................................................ 99 list of figures f igure 8-1 s econdary a rbiter e xample .............................................................................................. 64 f igure 16 -1 t est a ccess p ort b lock d iagram ................................................................................... 96 f igure 17 -1 pci s ignal t iming m easurement c onditions ............................................................... 103 f igure 18 -1 208 - pin fqfp p ackage o utline ....................................................................................... 105 f igure 18 -2 256 - pin pbga p ackage o utline ...................................................................................... 106 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 10 of 107 april 20 15 C revision 2.1 this page intentionally left blank. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 11 of 107 april 20 15 C revision 2.1 1 introduction product description the pi7c8150b is an enhanced pci- to -pci bridge that will support asynchronous operation and is designed to be fully compliant with the pci local bus specification revision 2.2. both the primary and secondary interfaces are specified to run at 32-bits and up to 66mhz (33mhz for pi7c8150b- 33) . product features ? 32 -bit primary and secondary ports run up to 66mhz (33mhz for pi7c8150b-33) ? compliant with the pci local bus specification, revision 2.3 ? compliant with pci- to -pci bridge architecture specification, revision 1.1 . ? all i/o and memory commands ? type 1 to type 0 configuration conversion ? type 1 to type 1 configuration forwarding ? type 1 configuration write to special cycle conversion ? compliant with the advanced configuration power interface (acpi) specification. ? compliant with the pci power management specification, revision 1.0. ? synchronous and asynchronous operation support ? supported modes of asynchronous operation primary (mhz) secondar y (mhz) pi7c8150b 25mhz to 66mhz 25mhz to 66mhz pi7c8150b - 33 25mhz to 33mhz 25mhz to 33mhz ? supported modes of synchronous operation primary (mhz) secondary (mhz) pi7c8150b 66 66 pi7c8150b 66 33 pi7c8150b 50 50 pi7c8150b 50 25 pi7c8150b pi7c8150b - 33 33 33 pi7c8150b pi7c8150b - 33 25 25 ? provides internal arbitration for one set of nine secondary bus masters ? programmable 2-level priority arbiter ? disable control for use of external arbiter ? supports posted write buffers in all directions ? four 128 byt e fifos for delay transactions ? two 128 byte fifos for posted memory transactions ? enhanced address decoding ? temperature support ? extended commercial range 0c to 85c ? industrial range -40c to 85c ? ieee 1149.1 jtag interface support ? 3.3v core; 3.3v and 5v signaling ? packaging: 208 -pin fqfp and 256-pin pbga ? pb -free & green 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 12 of 107 april 20 15 C revision 2.1 2 signal definitions 2.1 signal types signal type description i input only o output only p power ts tri - state bi - directional sts sustained tri - state. active low signal must be pulled hig h for 1 cycle when deasserting. od open drain 2.2 signals note: signal names that end with _l are active low. 2.2.1 primary bus interface signals name pin # pin # type description p_ad[31:0] 49, 50, 55, 57, 58, 60, 61, 63, 67, 68, 70, 71, 73, 74, 76, 77, 93, 95, 96, 98, 99, 101, 107, 109, 112, 113, 115, 116, 118, 119, 121, 122 n3, t2, t4, n5, p5, t5, n6, r5, t6, p7, t7, r7, t8, p8, r8, t9, r12, p12, t14, r13, n12, t15, p16, n15, m14, m13, m15, l13, m16, l14, l15, l16 ts primary address / data: multiplexed addr ess and data bus. address is indicated by p_frame_l assertion. write data is stable and valid when p_irdy_l is asserted and read data is stable and valid when p_trdy_l is asserted. data is transferred on rising clock edges when both p_irdy_l and p_trdy_l a re asserted. during bus idle, pi7c8150b drives p_ad to a valid logic level when p_gnt_l is asserted. p_cbe[3:0] 64, 79, 92, 110 r6, r9, t13, n16 ts primary command/byte enables: multiplexed command field and byte enable field. during address phase, the in itiator drives the transaction type on these pins. after that, the initiator drives the byte enables during data phases. during bus idle, pi7c8150b drives p_cbe[3:0] to a valid logic level when p_gnt_l is asserted. p_par 90 n11 ts primary parity. parity is even across p_ad[31:0], p_cbe[3:0], and p_par (i.e. an even number of 1s). p_par is an input and is valid and stable one cycle after the address phase (indicated by assertion of p_frame_l) for address parity. for write data phases, p_par is an input and is valid one clock after p_irdy_l is asserted. for read data phase, p_par is an output and is valid one clock after p_trdy_l is asserted. signal p_par is tri - stated one cycle after the p_ad lines are tri - stated. during bus idle, pi7c8150b drives p_p ar to a valid logic level when p_gnt_l is asserted. p_frame_l 80 p9 sts primary frame (active low). driven by the initiator of a transaction to indicate the beginning and duration of an access. the de - assertion of p_frame_l indicates the final data phas e requested by the initiator. before being tri - stated, it is driven to a de - asserted state for one cycle. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 13 of 107 april 20 15 C revision 2.1 name pin # pin # type description p_irdy_l 82 t10 sts primary irdy (active low). driven by the initiator of a transaction to indicate its ability to complete current data phase on t he primary side. once asserted in a data phase, it is not de - asserted until the end of the data phase. before tri - stated, it is driven to a de - asserted state for one cycle. p_trdy_l 83 r10 sts primary trdy (active low). driven by the target of a transa ction to indicate its ability to complete current data phase on the primary side. once asserted in a data phase, it is not de - asserted until the end of the data phase. before tri - stated, it is driven to a de - asserted state for one cycle. p_devsel_l 84 p1 0 sts primary device select (active low). asserted by the target indicating that the device is accepting the transaction. as a master, pi7c8150b waits for the assertion of this signal within 5 cycles of p_frame_l assertion; otherwise, terminate with mast er abort. before tri - stated, it is driven to a de - asserted state for one cycle. p_stop_l 85 t11 sts primary stop (active low). asserted by the target indicating that the target is requesting the initiator to stop the current transaction. before tri - state d, it is driven to a de - asserted state for one cycle. p_lock_l 87 r11 sts primary lock (active low). asserted by the master for multiple transactions to complete. p_idsel 65 p6 i primary id select. used as a chip select line for type 0 configuration access to pi7c8150b configuration space. p_perr_l 88 t12 sts primary parity error (active low). asserted when a data parity error is detected for data received on the primary interface. before being tri - stated, it is driven to a de - asserted state for on e cycle. p_serr_l 89 p11 od primary system error (active low). can be driven low by any device to indicate a system error condition. pi7c8150b drives this pin on: ? address parity error ? posted write data parity error on target bus ? secondary s_serr_l asser ted ? master abort during posted write transaction ? target abort during posted write transaction ? posted write transaction discarded ? delayed write request discarded ? delayed read request discarded ? delayed transaction master timeout this signal requires an exter nal pull - up resistor for proper operation. p_req_l 47 p2 ts primary request (active low): this is asserted by pi7c8150b to indicate that it wants to start a transaction on the primary bus. pi7c8150b de - asserts this pin for at least 2 pci clock cycles bef ore asserting it again. p_gnt_l 46 r1 i primary grant (active low): when asserted, pi7c8150b can access the primary bus. during idle and p_gnt_l asserted, pi7c8150b will drive p_ad, p_cbe, and p_par to valid logic levels. p_reset_l 43 p1 i primary reset (active low): when p_reset_l is active, all pci signals should be asynchronously tri - stated. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 14 of 107 april 20 15 C revision 2.1 name pin # pin # type description p_m66en 102 r14 i primary interface 66mhz operation. this input is used to specify if pi7c8150b is capable of running at 66mhz. for 66mhz operation on the prim ary bus, this signal should be pulled high. for 33mhz operation on the primary bus, this signal should be pulled low. in synchronous mode, s_m66en will be driven low, forcing the secondary bus to run at 33mhz also. also, bit [21] offset 04h is determi ned by cfg66. if p_m66en is low, s_m66en will not be driven low (please see s_m66en pin description). in asynchronous mode, the logic value of p_m66en is used to generate the value of bit[21] offset 04h. 2.2.2 secondary bus interface signals name pin # pin # type description s_ad[31:0] 206, 204, 203, 201, 200, 198, 197, 195, 192, 191, 189, 188, 186, 185, 183, 182, 165, 164, 162, 161, 159, 154, 152, 150, 147, 146, 144, 143, 141, 140, 138, 137 a4, d5, c5, a5, b5, d6, a6, c6, c7, a7, b7, c8, a8, b8, a9, c9, c12 , d12, a14, b13, a15, b16, e13, c16, e14, d16, f13, e16, f14, f15, f16, g16 ts secondary address/data: multiplexed address and data bus. address is indicated by s_frame_l assertion. write data is stable and valid when s_irdy_l is asserted and read data i s stable and valid when s_irdy_l is asserted. data is transferred on rising clock edges when both s_irdy_l and s_trdy_l are asserted. during bus idle, pi7c8150b drives s_ad to a valid logic level when s_gnt_l is asserted respectively. s_cbe[3:0] 194, 18 0, 167, 149 b6, b9, b12, e15 ts secondary command/byte enables: multiplexed command field and byte enable field. during address phase, the initiator drives the transaction type on these pins. the initiator then drives the byte enables during data phases. during bus idle, pi7c8150b drives s_cbe[3:0] to a valid logic level when the internal grant is asserted. s_par 168 a13 ts secondary parity: parity is even across s_ad[31:0], s_cbe[3:0], and s_par (i.e. an even number of 1s). s_par is an input and is v alid and stable one cycle after the address phase (indicated by assertion of s_frame_l) for address parity. for write data phases, s_par is an input and is valid one clock after s_irdy_l is asserted. for read data phase, s_par is an output and is valid o ne clock after s_trdy_l is asserted. signal s_par is tri - stated one cycle after the s_ad lines are tri - stated. during bus idle, pi7c8150b drives s_par to a valid logic level when the internal grant is asserted. s_frame_l 179 a10 sts secondary frame (act ive low): driven by the initiator of a transaction to indicate the beginning and duration of an access. the de - assertion of s_frame_l indicates the final data phase requested by the initiator. before being tri - stated, it is driven to a de - asserted state for one cycle. s_irdy_l 177 b10 sts secondary irdy (active low): driven by the initiator of a transaction to indicate its ability to complete current data phase on the secondary side. once asserted in a data phase, it is not de - asserted until the end of the data phase. before tri - stated, it is driven to a de - asserted state for one cycle. s_trdy_l 176 c10 sts secondary trdy (active low): driven by the target of a transaction to indicate its ability to complete current data phase on the secondary side. o nce asserted in a data phase, it is not de - asserted until the end of the data phase. before tri - stated, it is driven to a de - asserted state for one cycle. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 15 of 107 april 20 15 C revision 2.1 name pin # pin # type description s_devsel_l 175 a11 sts secondary device select (active low): asserted by the target indicating that the device is accepting the transaction. as a master, pi7c8150b waits for the assertion of this signal within 5 cycles of s_frame_l assertion; otherwise, terminate with master abort. before tri - stated, it is driven to a de - asserted state for one cycle. s _stop_l 173 b11 sts secondary stop (active low): asserted by the target indicating that the target is requesting the initiator to stop the current transaction. before tri - stated, it is driven to a de - asserted state for one cycle. s_lock_l 172 c11 sts seco ndary lock (active low): asserted by the master for multiple transactions to complete. s_perr_l 171 a12 sts secondary parity error (active low): asserted when a data parity error is detected for data received on the secondary interface. before being tr i - stated, it is driven to a de - asserted state for one cycle. s_serr_l 169 d11 i secondary system error (active low): can be driven low by any device to indicate a system error condition. s_req_l[8:0] 9, 8, 7, 6, 5, 4, 3, 2, 207 e4, e3, d2, c1, c2, d3, a2 ,b3, b4 i secondary request (active low): this is asserted by an external device to indicate that it wants to start a transaction on the secondary bus. the input is externally pulled up through a resistor to vdd. s_gnt_l[8:0] 19, 18, 17, 16, 15, 14, 13, 11, 10 g1, f1, f2, g3, f4, e1, e2,f3, d1 ts secondary grant (active low): pi7c8150b asserts this pin to access the secondary bus. pi7c8150b de - asserts this pin for at least 2 pci clock cycles before asserting it again. during idle and s_gnt_l asserted, p i7c8150b will drive s_ad, s_cbe, and s_par. s_reset_l 22 h1 o secondary reset (active low): asserted when any of the following conditions are met: 1. signal p_reset_l is asserted. 2. secondary reset bit in bridge control register in configuration space is set. when asserted, all control signals are tri - stated and zeroes are driven on s_ad, s_cbe, and s_par. s_m66en 153 d15 i/od secondary interface 66mhz operation: in synchronous mode, this input is used to specify if pi7c8150b is running at 66mhz on the second ary side. when high, the secondary bus may run at 66mhz. when low, the secondary bus may only run at 33mhz. if p_m66en is pulled low, the s_m66en is also driven low. in asynchronous mode, s_m66en is an input pin and operates independently from p_m66en. s_m66en should be pulled up to a logic 1 when the secondary frequency is 66mhz, or pulled down to a logic 0 when the secondary frequency is 33mhz. s_cfn_l 23 h2 i secondary bus central function control pin: when tied low, it enables the internal arbi ter. when tied high, an external arbiter must be used. s_req_l[0] is reconfigured to be the secondary bus grant input, and s_gnt_l[0] is reconfigured to be the secondary bus request output. s_cfn_l has a weak internal pull - down resistor. 2.2.3 clock signals name pin # pin # type description p_clk 45 m4 i primary clock input: provides timing for all transactions on the primary interface. s_clkin 21 h3 i secondary clock input: provides timing for all transactions on the secondary interface. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 16 of 107 april 20 15 C revision 2.1 name pin # pin # type description s_clkout[9:0] 42 , 41, 39, 38, 36, 35, 33, 32, 30, 29 m3, m2, n1, l4, l3, m1, l2, l1, k3, k2 o secondary clock output: provides secondary clocks phase synchronous with the p_clk in synchronous mode. when these clocks are used, one of the clock outputs must be fed back to s_clkin. unused outputs may be disabled by: 1. writing the secondary clock disable bits in the configuration space 2. using the serial disable mask using the gpio pins and msk_in 3. terminating them electrically. in asynchronous mode, s_clkout[5:0] are de rived from msk_in / async_clkin (please see cfg66 / scan_en_h / clk_rate pin description). 2.2.4 miscellaneous signals name pin # pin # type description msk_in / async_clkin 126 k15 i this is a multiplexed pin that is msk_in in synchronous mode and async_clk_ in in asynchronous mode. this pin has a weak internal pull - down resistor. msk_in - secondary clock disable serial input (synchronous mode): this pin is used by pi7c8150b to disable secondary clock outputs. the serial stream is received by msk_in, starting when p_reset is detected deasserted and s_reset_l is detected as being asserted. the serial data is used for selectively disabling secondary clock outputs and is shifted into the secondary clock control configuration register. this pin can be tied low to enable all secondary clock outputs or tied high to drive all the secondary clock outputs high. async_clkin C secondary clock input (asynchronous mode): the asynchronous clock for the secondary interface should be connected to this pin in asynchronous mode . s_clkout[9:0] will be derived from async_clkin. p_vio 124 k14 i primary i/o voltage: this pin is used to determine either 3.3v or 5v signaling on the primary bus. p_vio must be tied to 3.3v only when all devices on the primary bus use 3.3v signaling. o therwise, p_vio is tied to 5v. s_vio 135 g14 i secondary i/o voltage: this pin is used to determine either 3.3v or 5v signaling on the secondary bus. s_vio must be tied to 3.3v only when all devices on the secondary bus use 3.3v signaling. otherwise, s_vi o is tied to 5v. bpcce 44 n2 i bus/power clock control management pin: when this pin is tied high and the pi7c8150b is placed in the d3 hot power state, it enables the pi7c8150b to place the secondary bus in the b2 power state. the secondary clocks are dis abled and driven to 0. when this pin is tied low, there is no effect on the secondary bus clocks when the pi7c8150b enters the d3 hot power state. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 17 of 107 april 20 15 C revision 2.1 cfg66 / scan_en_h / clk_rate 125 k16 i this is a multiplexed pin that has 3 functions (2 in synchronous mode and 1 in asynchronous mode). cfg66 - 66mhz configuration (synchronous mode): this pin is used to designate 66mhz operation. tie high to enable 66mhz operation or tie low to designate 33mhz operation. scan_en_h - full - scan enable control (synchronous mode ): when scan_en_h is low, full - scan is in shift operation. when scan_en_h is high, full - scan is in parallel operation. note: valid only in test mode. pin is cfg66 in normal operation. clk_rate C s_clkout divider (asynchronous mode): determines the s_clkou t frequency relation to async_clk_in. 0: s_sclkout is half the frequency of async_clk_in. 1: s_clkout is the same frequency as async_clk_in. ms0, ms1 155, 106 b14, r16 i mode selection: selector for asynchronous or synchronous mode. ms0 ms1 descripti on 0 0 reserved 0 1 reserved 1 0 synchronous mode 1 1 asynchronous mode 2.2.5 general purpose i/o interface signals name pin # pin # type description gpio[3:0] 24, 25, 27, 28 j3, j2, j1, k1 ts general purpose i/o data pins: the 4 general - purpose signals are programmable as either input - only or bi - directional signals by writing the gpio output enable control register in the configuration space. 2.2.6 jtag boundary scan signals name pin # pin # type description tck 133 h15 i test clock. used to clock state i nformation and data into and out of the pi7c8150b during boundary scan. tms 132 h14 i test mode select. used to control the state of the test access port controller. tdo 130 h16 o test data output. when scan_en_h is high, it is used (in conjunction wit h tck) to shift data out of the test access port (tap) in a serial bit stream. tdi 129 j15 i test data input. when scan_en_h is high, it is used (in conjunction with tck) to shift data and instructions into the test access port (tap) in a serial bit stre am. trst_l 134 g15 i test reset. active low signal to reset the test access port (tap) controller into an initialized state. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 18 of 107 april 20 15 C revision 2.1 2.2.7 power and ground name pin # pin # type description vdd 1, 26, 34, 40, 51, 53, 56, 62, 69, 75, 81, 91, 97, 103, 105, 108, 114 , 120, 131, 139, 145, 151, 1 57, 163, 170, 178, 184, 190, 196, 202, 208 a3, c4, c15, d7, d8, d9, d10, e6, e7, e8, e9, e10, e11, f5, f12, g4, g5, g12, g13, h4, h5, h12, h13, j4, j5, j12, j13, k4, k5, k12, k13, l5, l12, m6, m7, m8, m9, m10, m11, n7, n8, n9, n 10, p13, p15, r3, t3 p power: +3.3v digital power. vss 12, 20, 31, 37, 48, 52, 54, 59, 66, 72, 78, 86, 94, 100, 104, 111, 117, 123, 136, 142, 148, 156, 158, 160, 166, 174, 181, 187, 193, 199, 205 a1, a16, b1, b2, b15, c3, c13, c14, d4, d13, d14, e5, e12, f6, f7, f8, f9, f10, f11, g2, g6, g7, g8, g9, g10, g11, h6, h7, h8, h9, h10, h11, j6, j7, j8, j9, j10, j11, k6, k7, k8, k9, k10, k11, l6, l7, l8, l9, l10, l11, m5, m12, n4, n13, n14, p3, p4, p14, r2, r4, r15, t1, t16 p ground: digital ground. 2.3 pin list C 208-pin fqfp table 2-1. pin list C 208 -pin fqfp pin number name type pin number name type 1 vdd p 2 s_req_l[1] i 3 s_req_l[2] i 4 s_req_l[3] i 5 s_req_l[4] i 6 s_req_l[5] i 7 s_req_l[6] i 8 s_req_l[7] i 9 s_req_l[8] i 10 s_gnt_l[0] ts 11 s_gnt_l[1] ts 12 vss p 13 s_gnt_l[2] ts 14 s_gnt_l[3] ts 15 s_gnt_l[4] ts 16 s_gnt_l[5] ts 17 s_gnt_l[6] ts 18 s_gnt_l[7] ts 19 s_gnt_l[8] ts 20 vss p 21 s_clkin i 22 s_reset_l o 23 s_cfn_l i 24 gpio[3] ts 25 g pio[2] ts 26 vdd p 27 gpio[1] ts 28 gpio[0] ts 29 s_clkout[0] o 30 s_clkout[1] o 31 vss p 32 s_clkout[2] o 33 s_clkout[3] o 34 vdd p 35 s_clkout[4] o 36 s_clkout[5] o 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 19 of 107 april 20 15 C revision 2.1 pin number name type pin number name type 37 vss p 38 s_clkout[6] o 39 s_clkout[7] o 40 vdd p 41 s_clkout[8] o 42 s_clkout[ 9] o 43 p_reset_l i 44 bpcce i 45 p_clk i 46 p_gnt_l i 47 p_req_l ts 48 vss p 49 p_ad[31] ts 50 p_ad[30] ts 51 vdd p 52 vss p 53 vdd p 54 vss p 55 p_ad[29] ts 56 vdd p 57 p_ad[28] ts 58 p_ad[27] ts 59 vss p 60 p_ad[26] ts 61 p_ad[25] ts 62 vdd p 63 p_ad[24] ts 64 p_cbe[3] ts 65 p_idsel i 66 vss p 67 p_ad[23] ts 68 p_ad[22] ts 69 vdd p 70 p_ad[21] ts 71 p_ad[20] ts 72 vss p 73 p_ad[19] ts 74 p_ad[18] ts 75 vdd p 76 p_ad[17] ts 77 p_ad[16] ts 78 vss p 79 p_cbe[2] ts 80 p_frame_l sts 81 vdd p 82 p_irdy_l sts 83 p_trdy_l sts 84 p_devsel_l sts 85 p_stop_l sts 86 vss p 87 p_lock_l sts 88 p_perr_l sts 89 p_serr_l sts 90 p_par sts 91 vdd p 92 p_cbe[1] ts 93 p_ad[15] ts 94 vss p 95 p_ad[14] ts 96 p_ad[13] ts 97 vdd p 98 p_ad[12] ts 99 p_a d[11] ts 100 vss p 101 p_ad[10] ts 102 p_m66en i 103 vdd p 104 vss p 105 vdd p 106 ms1 i 107 p_ad[9] ts 108 vdd p 109 p_ad[8] ts 110 p_cbe[0] ts 111 vss p 112 p_ad[7] ts 113 p_ad[6] ts 114 vdd p 115 p_ad[5] ts 116 p_ad[4] ts 117 vss p 118 p_ad[3] ts 119 p_ad[2] ts 120 vdd p 121 p_ad[1] ts 122 p_ad[0] ts 123 vss p 124 p_vio i 125 cfg66 / scan_en_h / clk_rate i 126 msk_in async_clk_in i 127 reserved - 128 reserved - 129 tdi i 130 tdo o 131 vdd p 132 tms i 133 tck i 134 trst_l i 135 s_vio i 1 36 vss p 137 s_ad[0] ts 138 s_ad[1] ts 139 vdd p 140 s_ad[2] ts 141 s_ad[3] ts 142 vss p 143 s_add[4] ts 144 s_ad[5] ts 145 vdd p 146 s_ad[6] ts 147 s_ad[7] ts 148 vss p 149 s_cbe[0] ts 150 s_ad[8] ts 151 vdd p 152 s_ad[9] ts 153 s_m66en i/od 154 s_ad[10] ts 155 ms0 i 156 vss p 157 vdd p 158 vss p 159 s_ad[11] ts 160 vss p 161 s_ad[12] ts 162 s_ad[13] ts 163 vdd p 164 s_ad[14] ts 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 20 of 107 april 20 15 C revision 2.1 pin number name type pin number name type 165 s_ad[15] ts 166 vss p 167 s_cbe[1] ts 168 s_par ts 169 s_serr_l i 170 vdd p 171 s_perr_l sts 172 s_lock_l s ts 173 s_stop_l sts 174 vss p 175 s_devsel_l sts 176 s_trdy_l sts 177 s_irdy_l sts 178 vdd p 179 s_frame_l sts 180 s_cbe[2] ts 181 vss p 182 s_ad[16] ts 183 s_ad[17] ts 184 vdd p 185 s_ad[18] ts 186 s_ad[19] ts 187 vss p 188 s_ad[20] ts 189 s_ad[2 1] ts 190 vdd p 191 s_ad[22] ts 192 s_ad[23] ts 193 vss p 194 s_cbe[3] ts 195 s_ad[24] ts 196 vdd p 197 s_ad[25] ts 198 s_ad[26] ts 199 vss p 200 s_ad[27] ts 201 s_ad[28] ts 202 vdd p 203 s_ad[29] ts 204 s_ad[30] ts 205 vss p 206 s_ad[31] ts 207 s _req_l[0] i 208 vdd p 2.4 pin list C 256-ball pbga table 2-2. pin list C 256 -pin pbga pin number name type pin number name type pin number name type a1 vss p a2 s_req_l[2] i a3 vdd p a4 s_ad[31] ts a5 s_ad[ 28] ts a6 s_ad[25] ts a7 s_ad[22] ts a8 s_ad[19] ts a9 s_ad[17] ts a10 s_frame_l sts a11 s_devsel_l sts a12 s_perr_l sts a13 s_par ts a14 s_ad[13] ts a15 s_ad[11] ts a16 vss p b1 vss p b2 vss p b3 s_req_l[1] i b4 s_req _l[0] i b5 s_ad[27] ts b6 s_cb e_l[3] ts b7 s_ad[21] ts b8 s_ad[18] ts b9 s_cbe_l[2] ts b10 s_irdy_l sts b11 s_stop_l sts b12 s_cbe_l[1] ts b13 s_ad[12] ts b14 ms 0 p b15 vss p b16 s_ad[10] ts c1 s_req_l[5] i c2 s_req_l[4] i c3 vss p c4 vdd p c5 s_ad[29] ts c6 s_ad[24] ts c7 s_ad[23 ] ts c8 s_ad[20] ts c9 s_ad[16] ts c10 s_trdy_l sts c11 s_lock_l sts c12 s_ad[15] ts c13 vss p c14 vss p c15 vdd p c16 s_ad[8] ts d1 s_gnt_l[0] ts d2 s_req_l[6] i d3 s_req_l[3] i d4 vss p d5 s_ad[30] ts d6 s_ad[26] ts d7 vdd p d8 vdd p d9 vdd p d10 vdd p d11 s_serr_l i d12 s_ad[14] ts d13 vss p d14 vss p d15 s_m66en i/od d16 s_ad[6] ts e1 s_gnt_l[3] ts e2 s_gnt_l[2] ts e3 s_req_l[7] i e4 s_req_l[8] i e5 vss p e6 vdd p e7 vdd p e8 vdd p e9 vdd p e10 vdd p e11 vdd p e12 vss p e13 s_ad[9] ts e14 s _ad[7] ts e15 s_cbe_l[0] ts e16 s_ad[4] ts f1 s_gnt_l[7] ts f2 s_gnt_l[6] ts f3 s_gnt_l[1] ts f4 s_gnt_l[4] ts f5 vdd p f6 vss p f7 vss p f8 vss p f9 vss p f10 vss p f11 vss p f12 vdd p f13 s_ad[5] ts f14 s_ad[3] ts f15 s_ad[2] ts f16 s_ad[1] ts g1 s_gnt_l[8] ts g2 vss p g3 s_gnt_l[5] ts 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 21 of 107 april 20 15 C revision 2.1 pin number name type pin number name type pin number name type g4 vdd p g5 vdd p g6 vss p g7 vss p g8 vss p g9 vss p g10 vss p g11 vss p g12 vdd p g13 vdd p g14 s_vio i g15 trst_l i g16 s_ad[0] ts h1 s_reset_l o h2 s_cfn_l i h3 s_clkin i h4 vdd p h5 vdd p h6 vss p h7 vss p h8 vss p h9 vss p h10 vss p h11 vss p h12 vdd p h13 vdd p h14 tms i h15 tck i h16 tdo o j1 gpio[1] ts j2 gpio[2] ts j3 gpio[3] ts j4 vdd p j5 vdd p j6 vss p j7 vss p j8 vss p j9 vss p j10 vss p j11 vss p j12 vdd p j13 vdd p j14 reserved - j15 tdi i j16 reserved - k1 gpio[0] ts k2 s_clkout[0] o k3 s_clkout[1] o k4 vdd p k5 vdd p k6 vss p k7 vss p k8 vss p k9 vss p k10 vss p k11 vss p k12 vdd p k13 vdd p k14 p_vio i k15 msk_in async_clk_in i k16 cfg66 scan_en_h clk_rate i l1 s_clkout[2] o l2 s _clkout[3] o l3 s_clkout[5] o l4 s_clkout[6] o l5 vdd p l6 vss p l7 vss p l8 vss p l9 vss p l10 vss p l11 vss p l12 vdd p l13 p_ad[4] ts l14 p_ad[2] ts l15 p_ad[1] ts l16 p_ad[0] ts m1 s_clkout[4] o m2 s_clkout[8] o m3 s_clkout[9] o m4 p_clk i m5 vss p m6 vdd p m7 vdd p m8 vdd p m9 vdd p m10 vdd p m11 vdd p m12 vss p m13 p_ad[6] ts m14 p_ad[7] ts m15 p_ad[5] ts m16 p_ad[3] ts n1 s_clkout[7] o n2 bpcce i n3 p_ad[31] ts n4 vss p n5 p_ad[28] ts n6 p_ad[25] ts n7 vdd p n8 vdd p n9 vdd p n10 vdd p n11 p_par ts n12 p_ad[11] ts n13 vss p n14 vss p n15 p_ad[8] ts n16 p_cbe_l[0] ts p1 p_reset_l i p2 p_req_l ts p3 vss p p4 vss p p5 p_ad[27] ts p6 p_idsel i p7 p_ad[22] ts p8 p_ad[18] ts p9 p_frame_l sts p10 p_devsel_l sts p11 p_serr_l od p12 p _ad[14] ts p13 vdd p p14 vss p p15 vdd p p16 p_ad[9] ts r1 p_gnt_l i r2 vss p r3 vdd p r4 vss p r5 p_ad[24] ts r6 p_cbe_l[3] ts r7 p_ad[20] ts r8 p_ad[17] ts r9 p_cbe_l[2] ts r10 p_trdy_l sts r11 p_lock_l sts r12 p_ad[15] ts r13 p_ad[12] ts r14 p_m66 en i r15 vss p r16 ms 1 p t1 vss p t2 p_ad[30] ts t3 vdd p t4 p_ad[29] ts t5 p_ad[26] ts t6 p_ad[23] ts t7 p_ad[21] ts t8 p_ad[19] ts t9 p_ad[16] ts t10 p_irdy_l sts t11 p_stop_l sts t12 p_perr_l sts t13 p_cbe_l[1] ts t14 p_ad[13] ts t15 p_ad[10] ts t 16 vss p 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 22 of 107 april 20 15 C revision 2.1 3 pci bus operation this chapter offers information about pci transactions, transaction forwarding across pi7c8150b, and transaction termination. the pi7c8150b has two 128-byte fifos for buffering of upstream and downstream transactions. these hold addresses, data, commands, and byte enables that are used for write transactions. the pi7c8150b also has an additional four 128- byte fifos that hold addresses, data, commands, and byte enables for read transactions. 3.1 types of transactions this section provides a summary of pci transactions performed by pi7c8150b . table 3-1 lists the command code and name of each pci transaction. the master and target columns indicate support for each transaction when pi7c8150b initiates transactions as a master, on the primary (p) and secondary (s) buses, and when pi7c8150b responds to transactions as a target, on the primary (p) and secondary (s) buses. table 3-1. pci transactions types of transactions initiates as master responds as target primary secondary primary secondary 0000 interrupt acknowledge n n n n 0001 special cycle y y n n 0010 i/o read y y y y 0011 i/o write y y y y 0100 reserved n n n n 0101 reserved n n n n 0110 mem ory read y y y y 0111 memory write y y y y 1000 reserved n n n n 1001 reserved n n n n 1010 configuration read n y y n 1011 configuration write y (type 1 only) y y y (type 1 only) 1100 memory read multiple y y y y 1101 dual address cycle y y y y 11 10 memory read line y y y y 1111 memory write and invalidate y y y y as indicated in table 3-1 , the following pci commands are not supported by pi7c8150b: ? pi7c8150b never initiates a pci transaction with a reserved command code and, as a target, pi7c8150b ignores reserved command codes. ? pi7c8150b does not generate interrupt acknowledge transactions. pi7c8150b ignores interrupt acknowledge transactions as a target. ? pi7c8150b does not respond to special cycle transactions. pi7c8150b cannot guarantee delivery of a special cycle transaction to downstream buses because of the broadcast nature of the special cycle command and the inability to control the transaction as a target. to generate special cycle transactions on other pci buses, either upstream or downstream, type 1 configuration write must be used. ? pi7c8150b neither generates type 0 configuration transactions on the primary pci bus nor responds to type 0 configuration transactions on the secondary pci buses. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 23 of 107 april 20 15 C revision 2.1 3.2 single address phase a 32 -bit address uses a single address phase. this address is driven on p_ad[31:0], and the bus command is driven on p_cbe[3:0]. pi7c8150b supports the linear increment address mode only, which is indicated when the lowest two address bits are equal to zero. if either of the lowest two address bits is nonzero, pi7c8150b automatically disconnects the transaction after the first data transfer. 3.3 device select (devsel_l) generation pi7c8150b always performs positive address decoding (medium decode) when accepting transactions on either the primary or secondary buses. pi7c8150b never does subtractive decode. 3.4 data phase the address phase of a pci transaction is followed by one or more data phases. a data phase is completed when irdy_l and either trdy_l or stop_l are asserted. a transfer of data occurs only when both irdy_l and trdy_l are asserted during the same pci clock cycle. the last data phase of a transaction is indicated when frame_l is de- asserted and both trdy_l and irdy_l are asserted, or when irdy_l and stop_l are asserted. see section 3.8 for further discussion of transaction termination. depending on the command type, pi7c8150b can support multiple data phase pci transactions. for detailed descriptions of how pi7c8150b imposes disconnect boundaries, see section 3.5.4 for write address boundaries and section 3.6.3 read address boundaries. 3.5 write transactions write transactions are treated as either posted write or delayed write transactions. table 3-2 shows the method of forwarding used for each type of write operation. table 3-2. write transaction forwarding type of tr ansaction type of forwarding memory write posted (except vga memory) memory write and invalidate posted memory write to vga memory delayed i/o write delayed type 1 configuration write delayed 3.5.1 memory write transactions posted write forwarding is us ed for memory write and memory write and invalidate transactions. when pi7c8150b determines that a memory write transaction is to be forwarded across the bridge, pi7c8150b asserts devsel_l with medium timing and trdy_l in the next cycle, provided that enough buffer space is available in the posted memory write queue for 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 24 of 107 april 20 15 C revision 2.1 the address and at least one dword of data. under this condition, pi7c8150b accepts write data without obtaining access to the target bus. the pi7c8150b can accept one dword of write data every pci clock cycle. that is, no target wait state is inserted. the write data is stored in an internal posted write buffers and is subsequently delivered to the target. the pi7c8150b continues to accept write data until one of the following events occurs: ? the initiator terminates the transaction by de-asserting frame# and irdy#. ? an internal write address boundary is reached, such as a cache line boundary or an aligned 4kb boundary, depending on the transaction type. ? the posted write data buffer fills up. when one of the last two events occurs, the pi7c8150b returns a target disconnect to the requesting initiator on this data phase to terminate the transaction. once the posted write data moves to the head of the posted data queue, pi7c8150b asserts its request on the target bus. this can occur while pi7c8150b is still receiving data on the initiator bus. when the grant for the target bus is received and the target bus is detected in the idle condition, pi7c8150b asserts frame_l and drives the stored write address out on the target bus. on the following cycle, pi7c8150b drives the first dword of write data and continues to transfer write data until all write data corresponding to that transaction is delivered, or until a target termination is received. as long as write data exists in the queue, pi7c8150b can drive one dword of write data each pci clock cycle; that is, no master wait states are inserted. if write data is flowing through pi7c8150b and the initiator stalls, pi7c8150b will signal the last data phase for the current transaction at the target bus if the queue empties. pi7c8150b will restart the follow-on transactions if the queue has new data. pi7c8150b ends the transaction on the target bus when one of the following conditions is met: ? all posted write data has been delivered to the target. ? the target returns a target disconnect or target retry (pi7c8150b starts another transaction to deliver the rest of the write data). ? the target returns a target abort (pi7c8150b discards remaining write data). ? the master latency timer expires, and pi7c8150b no longer has the target bus grant (pi7c8150b starts another transaction to deliver remaining write data). section 3.8.3.2 provides detailed information about how pi7c8150b responds to target termination during posted write transactions. 3.5.2 memory write and invalidate posted write forwarding is used for memory write and invalidate transactions. if offset 74h bits [8:7] = 11, the pi7c8150b disconnects memory write and invalidate commands at aligned cache line boundaries. the cache line size value in the cache line size register gives the number of dword in a cache line. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 25 of 107 april 20 15 C revision 2.1 if offset 74h bits [8:7] = 00, the pi7c8150b converts memory write and invalidate transactions to memory write transactions at the destination. if the value in the cache line size register does meet the memory write and invalidate conditions, the pi7c8150b returns a target disconnect to the initiator on a cache line boundary. 3.5.3 delayed write transactions delayed write forwarding is used for i/o write transactions and type 1 configuration write transactions. a delayed write transaction guarantees that the actual target response is returned back to the initiator without holding the initiating bus in wait states. a delayed write transaction is limited to a single dword data transfer. when a write transaction is first detected on the initiator bus, and pi7c8150b forwards it as a delayed transaction, pi7c8150b claims the access by asserting devsel_l and returns a target retry to the initiator. during the address phase, pi7c8150b samples the bus command, address, and address parity one cycle later. after irdy_l is asserted, pi7c8150b also samples the first data dword, byte enable bits, and data parity. this information is placed into the delayed transaction queue. the transaction is queued only if no other existing delayed transactions have the same address and command, and if the delayed transaction queue is not full. when the delayed write transaction moves to the head of the delayed transaction queue and all ordering constraints with posted data are satisfied. the pi7c8150b initiates the transaction on the target bus. pi7c8150b transfers the write data to the target. if pi7c8150b receives a target retry in response to the write transaction on the target bus, it continues to repeat the write transaction until the data transfer is completed, or until an error condition is encountered. if pi7c8150b is unable to deliver write data after 2 24 (default) or 2 32 (maximum) attempts, pi7c8150b will report a system error. pi7c8150b also asserts p_serr_l if the primary serr_l enable bit is set in the command register. see section 6.4 for information on the assertion of p_serr_l. when the initiator repeats the same write transaction (same command, address, byte enable bits, and data), and the completed delayed transaction is at the head of the queue, the pi7c8150b claims the access by asserting devsel_l and returns trdy_l to the initiator, to indicate that the write data was transferred. if the initiator requests multiple dword, pi7c8150b also asserts stop_l in conjunction with trdy_l to signal a target disconnect. note that only those bytes of write data with valid byte enable bits are compared. if any of the byte enable bits are turned off (driven high), the corresponding byte of write data is not compared. if the initiator repeats the write transaction before the data has been transferred to the target, pi7c8150b returns a target retry to the initiator. pi7c8150b continues to return a target retry to the initiator until write data is delivered to the target, or until an error condition is encountered. when the write transaction is repeated, pi7c8150b does not make a new entry into the delayed transaction queue. section 3.8.3.1 provides detailed information about how pi7c8150b responds to target termination during delayed write transactions. pi7c8150b implements a discard timer that starts counting when the delayed write completion is at the head of the delayed transaction completion queue. the initial value of this timer can be set to the retry counter register offset 78h. if the initiator does not repeat the delayed write transaction before the discard 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 26 of 107 april 20 15 C revision 2.1 timer expires, pi7c8150b discards the delayed write completion from the delayed transaction completion queue. pi7c8150b also conditionally asserts p_serr_l (see section 6.4 ). 3.5.4 write transaction address boundaries pi7c8150b imposes internal address boundaries when accepting write data. the aligned address boundaries are used to prevent pi7c8150b from continuing a transaction over a device address boundary and to provide an upper limit on maximum latency. pi7c78150 returns a target disconnect to the initiator when it reaches the aligned address boundaries under conditions shown in table 3-3 . table 3-3. write transaction disconnect address boundaries type of transact ion condition aligned address boundary delayed write all disconnects after one data transfer posted memory write memory write disconnect control bit = 0 (1) 4kb aligned address boundary posted memory write memory write disconnect control bit = 1 (1) disco nnects at cache line boundary posted memory write and invalidate cache line size ? 1, 2, 4, 8, 16 4kb aligned address boundary posted memory write and invalidate cache line size = 1, 2, 4, 8, 16 cache line boundary if posted memory write data fifo does not have enough space for the cache line note 1. memory write disconnect control bit is bit 1 of the chip control register at offset 40h in the configuration space. 3.5.5 buffering multiple write transactions pi7c8150b continues to accept posted memory write transactions as long as space for at least one dword of data in the posted write data buffer remains. if the posted write data buffer fills before the initiator terminates the write transaction, pi7c8150b returns a target disconnect to the initiator. de layed write transactions are posted as long as at least one open entry in the delayed transaction queue exists. therefore, several posted and delayed write transactions can exist in data buffers at the same time. see chapter 6 for information about how multiple posted and delayed write transactions are ordered. 3.5.6 fast back- to -back transactions pi7c8150b can recognize and post fast back- to -back write transactions. when pi7c8150b cannot accept the second transaction because of buffer space limitations, it returns a target retry to the initiator. the fast back- to -back enable bit must be set in the command register for upstream write transactions, and in the bridge control register for downstream write transactions. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 27 of 107 april 20 15 C revision 2.1 3.6 read transactio ns delayed read forwarding is used for all read transactions crossing pi7c8150b. delayed read transactions are treated as either prefetchable or non-prefetchable. table 3-5 shows the read behavior, prefetchable or non-prefetchable, for each type of read operation. 3.6.1 prefetchable read transactions a prefetchable read transaction is a read transaction where pi7c8150b performs speculative dword reads, transferring data from the target before it is requested from the initiator. this behavior allows a prefetchable read transaction to consist of multiple data transfers. however, byte enable bits cannot be forwarded for all data phases as is done for the single data phase of the non-prefetchable read transaction. for prefetchable read tr ansactions, pi7c8150b forces all byte enable bits to be turned on for all data phases. prefetchable behavior is used for memory read line and memory read multiple transactions, as well as for memory read transactions that fall into prefetchable memory spa ce. the amount of data that is pre-fetched depends on the type of transaction. the amount of pre-fetching may also be affected by the amount of free buffer space available in pi7c8150b, and by any read address boundaries encountered. pre-fetching should not be used for those read transactions that have side effects in the target device, that is, control and status registers, fifos, and so on. the target devices base address register or registers indicate if a memory address region is prefetchable. 3.6.2 no n-prefetchable read transactions a non-prefetchable read transaction is a read transaction where pi7c8150b requests one and only one dword from the target and disconnects the initiator after delivery of the first dword of read data. unlike prefetchable read transactions, pi7c8150b forwards the read byte enable information for the data phase. non-prefetchable behavior is used for i/o and configuration read transactions, as well as for memory read transactions that fall into non-prefetchable memory space. if extra read transactions could have side effects, for example, when accessing a fifo, use non-prefetchable read transactions to those locations. accordingly, if it is important to retain the value of the byte enable bits during the data phase, use non- pr efetchable read transactions. if these locations are mapped in memory space, use the memory read command and map the target into non-prefetchable (memory-mapped i/o) memory space to use non-prefetching behavior. 3.6.3 read prefetch address boundaries pi7c8150b imposes internal read address boundaries on read pre-fetched data. when a read transaction reaches one of these aligned address boundaries, the pi7c8150b stops pre- fetched data, unless the target signals a target disconnect before the read pre-fetched bo undary is reached. when pi7c8150b finishes transferring this read data to the initiator, it returns a target disconnect with the last data transfer, unless the initiator completes the 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 28 of 107 april 20 15 C revision 2.1 transaction before all pre-fetched read data is delivered. any leftover pre-fetched data is discarded. prefetchable read transactions in flow-through mode pre-fetch to the nearest aligned 4kb address boundary, or until the initiator de-asserts frame_l. section 3.6.6 describes flow- through mode during read operations. table 3-4 shows the read pre-fetch address boundaries for read transactions during non- flow-through mode. table 3-4. read prefetch address boundaries type of tr ansaction address space cache line size (cls) prefetch aligned address boundary configuration read - * one dword (no prefetch) i/o read - * one dword (no prefetch) memory read non - prefetchable * one dword (no prefetch) memory read prefetchable cls = 0 or 16 16 - dword aligned address boundary memory read prefetchable cls = 1, 2, 4, 8, 16 cache line address boundary memory read line - cls = 0 or 16 16 - dword aligned address boundary memory read line - cls = 1, 2, 4, 8, 16 cache line boundary memory read multiple - cls = 0 or 16 32 - dword aligned address boundary memory read multiple - cls = 1, 2, 4, 8, 16 2x of cache line boundary - does not matter if it is prefetchable or non-prefetchable * dont care table 3-5. read transaction prefetching type of transaction read behavior i/o read prefetching never allowed configuration read prefetching never allowed memory read downstream: prefetching used if address is prefetchable space upstream: prefetching us ed or programmable memory read line prefetching always used memory read multiple prefetching always used see section 4.3 for detailed information about prefetchable and non-prefetchable address spaces. 3.6.4 delayed read requests pi7c8150b treats all read transactions as delayed read transactions, which means that the read request from the initiator is posted into a delayed transaction queue. read data from the target is placed in the read data queue directed toward the initiator bus interface and is transferred to the initiator when the initiator repeats the read transaction. when pi7c8150b accepts a delayed read request, it first samples the read address, read bus command, and address parity. when irdy_l is asserted, pi7c81 50b then samples the byte enable bits for the first data phase. this information is entered into the delayed transaction queue. pi7c8150b terminates the transaction by signaling a target retry to the initiator. upon reception of the target retry, the initiator is required to continue to repeat the same read transaction until at least one data transfer is completed, or until a target response (target abort or master abort) other than a target retry is received. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 29 of 107 april 20 15 C revision 2.1 3.6.5 delayed read completion with target when delayed read request reaches the head of the delayed transaction queue, pi7c8150b arbitrates for the target bus and initiates the read transaction only if all previously queued posted write transactions have been delivered. pi7c8150b uses the exact read address and read command captured from the initiator during the initial delayed read request to initiate the read transaction. if the read transaction is a non-prefetchable read, pi7c8150b drives the captured byte enable bits during the next cycle. if the transaction is a prefetchable read transaction, it drives all byte enable bits to zero for all data phases. if pi7c8150b receives a target retry in response to the read transaction on the target bus, it continues to repeat the read transaction until at least one data transfer is completed, or until an error condition is encountered. if the transaction is terminated via normal master termination or target disconnect after at least one data transfer has been completed, pi7c8150b does not initiate any further attempts to read more data. if pi7c8150b is unable to obtain read data from the target after 2 24 (default) or 2 32 (maximum) attempts, pi7c8150b will report system error. the number of attempts is programmable. pi7c8150b also asserts p_serr_l if the primary serr_l enable bit is set in the command register. see section 6.4 for information on the assertion of p_serr_l. once pi7c8150b receives devsel_l and trdy_l from the target, it transfers the data read to the opposite direction read data queue, pointing toward the opposite inter-face, before terminating the transaction. for example, read data in response to a downstream read transaction initiated on the primary bus is placed in the upstream read data queue. the pi7c8150b can accept one dword of read data each pci clock cycle; that is, no master wait states are inserted. the number of dwords transferred during a delayed read transaction depends on the conditions given in table 3-4 (assuming no disconnect is received from the target). 3.6.6 delayed read completion on initiator bus when the transaction has been completed on the target bus, and the delayed read data is at the head of the read data queue, and all ordering constraints with posted write transactions have been satisfied, the pi7c8150b transfers the data to the initiator when the initiator repeats the transaction. for memory read transactions, pi7c8150b aliases the memory read, memory read line, and memory read multiple bus commands when matching the bus command of the transaction to the bus command in the delayed transaction queue. pi7c8150b returns a target disconnect along with the transfer of the last dword of read data to the initiator. if pi7c8150b initiator terminates the transaction before all read data has been transferred, the remaining read data left in data buffers is discarded. when the master repeats the transaction and starts transferring prefetchable read data from data buffers while the read transaction on the target bus is still in progress and before a read boundary is reached on the target bus, the read transaction starts operating in flow-through mode. because data is flowing through the data buffers from the target to the initiator, long read bursts can then be sustained. in this case, the read transaction is allowed to continue until the initiator terminates the transaction, or until an aligned 4kb address boundary is reached, or until the buffer fills, whichever comes first. when the buffer empties, pi7c8150b reflects the stalled condition to the initiator by disconnecting the initiator with data. the initiator may retry the transaction later if data are needed. if the initiator does not need any more data, the initiator will not continue the disconnected transaction. in this case, pi7c81 50b will start the master timeout timer. the remaining read data will be discarded after the master timeout timer expires. to provide better latency, if there are any other 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 30 of 107 april 20 15 C revision 2.1 pending data for other transactions in the rdb (read data buffer), the remaining read data will be discarded even though the master timeout timer has not expired. pi7c8150b implements a master timeout timer that starts counting when the delayed read completion is at the head of the delayed transaction queue, and the read data is at the head of the read data queue. the initial value of this timer is programmable through configuration register. if the initiator does not repeat the read transaction and before the master timeout timer expires (2 15 default), pi7c8150b discards the read transaction and read data from its queues. pi7c8150b also conditionally asserts p_serr_l (see section 6.4 ). pi7c8150b has the capability to post multiple delayed read requests, up to a maximum of four in each direction. if an initiator starts a read transaction that matches the address and read command of a read transaction that is already queued, the current read command is not posted as it is already contained in the delayed transaction queue. see section 5 for a discussion of how delayed read transactions are ordered when crossing pi7c8150b. 3.6.7 fast back- to -back read transaction pi7c8150b can recognize fast back- to -back read transaction s. 3.7 configuration transactions configuration transactions are used to initialize a pci system. every pci device has a configuration space that is accessed by configuration commands. all registers are accessible in configuration space only. in addition to accepting configuration transactions for initialization of its own co nfiguration space, the pi7c8150b also forwards configuration transactions for device initialization in hierarchical pci systems, as well as for special cycle generation. to support hierarchical pci bus systems, two types of configuration transactions are specified: type 0 and type 1. type 0 configuration transactions are issued when the intended target resides on the same pci bus as the initiator. a type 0 configuration transaction is identified by the configuration command and the lowest two bits of the address set to 00b. type 1 configuration transactions are issued when the intended target resides on another pci bus, or when a special cycle is to be generated on another pci bus. a type 1 configuration command is identified by the configuration command and the lowest two address bits set to 01b. the register number is found in both type 0 and type 1 formats and gives the dword address of the configuration register to be accessed. the function number is also included in both type 0 and type 1 formats and indicates which function of a multifunction device is to be accessed. for single-function devices, this value is not decoded. the addresses of type 1 configuration transaction include a 5-bit field designating the device number that identifies the device on the target pci bus that is to be accessed. in addition, the bus number in type 1 transactions specifies the pci bus to which the transaction is targeted. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 31 of 107 april 20 15 C revision 2.1 3.7.1 type 0 access to pi7c8150b the configuration space is accessed by a type 0 configuration transaction on the primary interface. the configuration space cannot be accessed from the secondary bus. the pi7c8150b responds to a type 0 configuration transaction by asserting p_devsel_l when the following conditions are met during the address phase: ? the bus command is a configuration read or configuration write transaction. ? lowest two address bits p_ad[1:0] must be 00b. ? signal p_idsel must be asserted. pi7c8150b limits all configuration access to a single dword data transfer and returns target-disconnect with the first data transfer if additional data phases are requested. because read transactions to configuration space do not have side effects, all bytes in the requested dword are returned, regardless of the value of the byte enable bits. type 0 configuration write and read transactions do not use data buffers; that is, these transactions are completed immediately, regardless of the state of the data buffers. the pi7c8150b ignores all type 0 transactions initiated on the secondary interface. 3.7.2 type 1 to type 0 conversion type 1 configuration transactions are used specifically for device configuration in a hierarchical pci bus system. a pci- to -pci bridge is the only type of device that should respond to a type 1 configuration command. type 1 configuration commands are used when the configuration access is intended for a pci device that resides on a pci bus other than the one where the type 1 transaction is generated. pi7c8150b performs a type 1 to type 0 translation when the type 1 transaction is generated on the primary bus and is intended for a device attached directly to the secondary bus. pi7c8150b must convert the configuration command to a type 0 format so that the secondary bus device can respond to it. type 1 to type 0 translations are performed only in the downstream direction; that is, pi7c8150b generates a type 0 transaction only on the secondary bus, and never on the primary bus. pi7c8150b responds to a type 1 configuration transaction and translates it into a type 0 transaction on the secondary bus when the following conditions are met during the address phase: ? the lowest two address bits on p_ad[1:0] are 01b. ? the bus number in address field p_ad[23:16] is equal to the value in the secondary bus number register in configuration space. ? the bus command on p_cbe[3:0] is a configuration read or configuration write transaction. when pi7c8150b translates the type 1 transaction to a type 0 transaction on the secondary interface, it performs the following translations to the address: ? sets the lowest two address bits on s_ad[1:0]. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 32 of 107 april 20 15 C revision 2.1 ? decodes the device number and drives the bit pattern specified in table 3-6 on s_ad[31:16] for the purpose of asserting the devices idsel signal. ? sets s_ad[15:11] to 0. ? leaves unchanged the function number and register number fields. pi7c8150b asserts a unique address line based on the device number. these address lines may be used as secondary bus idsel signals. the mapping of the address lines depends on the device number in the type 1 address bits p_ad[15:11]. presents the mapping that pi7c8150b uses. table 3-6. device number to idsel s_ad pin mapping device number p_ad[15:11] secondary idsel s_ad[31:16] s_ad 0h 00000 0000 0000 0000 0001 16 1h 00001 0000 0000 0000 0010 17 2h 00010 0000 0000 0000 0100 18 3h 00011 0000 0000 0000 1000 19 4h 00100 0000 0000 0001 0000 20 5h 00101 0000 0000 0010 0000 21 6h 00110 0000 0000 0100 0000 22 7h 00111 0000 0000 1000 0000 23 8h 01000 0000 0001 0000 0000 24 9h 01001 0000 0010 0000 0000 25 ah 01010 0000 0100 0000 0000 26 bh 01011 0000 1000 0000 0000 27 ch 01100 0001 0000 0000 0000 28 dh 01101 0010 0000 0000 0000 29 eh 01110 0100 0000 0000 0000 30 fh 01111 1000 0000 0000 0000 31 10h C 1eh 10000 C 11110 0000 0000 0000 0000 - 1fh 11111 generate special cycle (p_ad[7:2] > 00h) 0000 0000 0000 0000 (p_ad[7:2] = 00h) - pi7c8150b can assert up to 9 unique address lines to be used as idsel signals for up to 9 devices on the secondary bus, for device numbers ranging from 0 through 8. because of electrical loading constraints of the pci bus, more than 9 idsel signals should not be necessary. however, if device numbers greater than 9 are desired, some external method of generating idsel lines must be used, and no upper address bits are then asserted. the configuration transaction is still translated and passed from the primary bus to the secondary bus. if no idsel pin is asserted to a secondary device, the transaction ends in a master abort. pi7c8150b fo rwards type 1 to type 0 configuration read or write transactions as delayed transactions. type 1 to type 0 configuration read or write transactions are limited to a single 32-bit data transfer. 3.7.3 type 1 to type 1 forwarding type 1 to type 1 transaction forwarding provides a hierarchical configuration mechanism when two or more levels of pci- to -pci bridges are used. when pi7c8150b detects a type 1 configuration transaction intended for a pci bus downstream from the secondary bus, pi7c8150b forwards the transaction unchanged to the secondary bus. ultimately, this transaction is translated to a type 0 configuration command or to a special cycle transaction by a downstream pci- to -pci bridge. downstream type 1 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 33 of 107 april 20 15 C revision 2.1 to type 1 forwarding occurs when the following conditions are met during the address phase: ? the lowest two address bits are equal to 01b. ? the bus number falls in the range defined by the lower limit (exclusive) in the secondary bus number register and the upper limit (inclusive) in the subordinate bus nu mber register. ? the bus command is a configuration read or write transaction. pi7c8150b also supports type 1 to type 1 forwarding of configuration write transactions upstream to support upstream special cycle generation. a type 1 configuration command is forwarded upstream when the following conditions are met: ? the lowest two address bits are equal to 01b. ? the bus number falls outside the range defined by the lower limit (inclusive) in the secondary bus number register and the upper limit (inclusive) in the subordinate bus number register. ? the device number in address bits ad[15:11] is equal to 11111b. ? the function number in address bits ad[10:8] is equal to 111b. ? the bus command is a configuration write transaction. the pi7c8150b forwards type 1 to type 1 configuration write transactions as delayed transactions. type 1 to type 1 configuration write transactions are limited to a single data transfer. 3.7.4 special cycles the type 1 configuration mechanism is used to generate special cycle transactions in hierarchical pci systems. special cycle transactions are ignored by acting as a target and are not forwarded across the bridge. special cycle transactions can be generated from type 1 configuration write transactions in either the upstream or the down-stream direction. pi7c8150b initiates a special cycle on the target bus when a type 1 configuration write transaction is being detected on the initiating bus and the following conditions are met during the address phase: ? the lowest two address bits on ad[1:0] are equal to 01b. ? the device number in address bits ad[15:11] is equal to 11111b. ? the function number in address bits ad[10:8] is equal to 111b. ? the register number in address bits ad[7:2] is equal to 000000b. ? the bus number is equal to the value in the secondary bus number register in configuration space for downstream forwarding or equal to the value in the primary bus number register in configuration space for upstream forwarding. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 34 of 107 april 20 15 C revision 2.1 ? the bus command on cbe_l is a configuration write command. when pi 7c8150b initiates the transaction on the target interface, the bus command is changed from configuration write to special cycle. the address and data are for-warded unchanged. devices that use special cycles ignore the address and decode only the bus command. the data phase contains the special cycle message. the transaction is forwarded as a delayed transaction, but in this case the target response is not forwarded back (because special cycles result in a master abort). once the transaction is completed o n the target bus, through detection of the master abort condition, pi7c8150b responds with trdy_l to the next attempt of the con-figuration transaction from the initiator. if more than one data transfer is requested, pi7c8150b responds with a target disconnect operation during the first data phase. 3.8 transaction termination this section describes how pi7c8150b returns transaction termination conditions back to the initiator. the initiator can terminate transactions with one of the following types of termination: ? normal termination normal termination occurs when the initiator de-asserts frame _l at the beginning of the last data phase, and de-asserts irdy# at the end of the last data phase in conjunction with either trdy_l or stop_l assertion from the targe t. ? master abort a master abort occurs when no target response is detected. when the initiator does not detect a devsel_l from the target within five clock cycles after asserting frame_l, the initiator terminates the transaction with a master abort. if frame_l is still asserted, the initiator de-asserts frame_l on the next cycle, and then de-asserts irdy_l on the following cycle. irdy_l must be asserted in the same cycle in which frame_l de- asserts. if frame_l is already de-asserted, irdy_l can be de-asserted on the next clock cycle following detection of the master abort condition. the target can terminate transactions with one of the following types of termination: ? normal termination trdy_l and devsel_l asserted in conjunction with frame_l de-asserted and irdy_l asserted. ? target retry stop_l and devsel_l asserted with trdy_l de-asserted during the first data phase. no data transfers occur during the transaction. this transaction must be repeated. ? target disconnect with data transfer stop_l, devsel_l and trdy_l asserted. it signals that this is the last data transfer of the transaction. ? target disconnect without data transfer stop_l and devsel_l asserted with trdy_l de-asserted after previous data transfers have been made. indicates that no more data transfers will be made during this transaction. ? target abort 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 35 of 107 april 20 15 C revision 2.1 stop_l asserted with devsel_l and trdy_l de-asserted. indicates that target will never be able to complete this transaction. devsel_l must be asserted for at least one cycle during the transaction before the target abort is signaled. 3.8.1 master termination initiated by pi7c8150b pi7c8150b, as an initiator, uses normal termination if devsel_l is returned by target within five clock cycles of pi7c8150b s assertion of frame_l on the target bus. as an in itiator, pi7c8150b terminates a transaction when the following conditions are met: ? during a delayed write transaction, a single dword is delivered. ? during a non-prefetchable read transaction, a single dword is transferred from the target. ? during a prefetchable read transaction, a pre-fetch boundary is reached. ? for a posted write transaction, all write data for the transaction is transferred from data buffers to the target. ? for burst transfer, with the exception of memory write and invalidate transac tions, the master latency timer expires and the pi7c8150b s bus grant is de -asserted. ? the target terminates the transaction with a retry, disconnect, or target abort. if pi7c8150b is delivering posted write data when it terminates the transaction because the master latency timer expires, it initiates another transaction to deliver the remaining write data. the address of the transaction is updated to reflect the address of the current dword to be delivered. if pi7c8150b is pre-fetching read data when it terminates the transaction because the master latency timer expires, it does not repeat the transaction to obtain more data. 3.8.2 master abort received by pi7c8150b if the initiator initiates a transaction on the target bus and does not detect devsel_l returned by the target within five clock cycles of the assertion of frame_l, pi7c8150b terminates the transaction with a master abort. this sets the received-master-abort bit in the status register corresponding to the target bus. for delayed read and write transactions, pi7c8150b is able to reflect the master abort condition back to the initiator. when pi7c8150b detects a master abort in response to a delayed transaction, and when the initiator repeats the transaction, pi7c8150b does not respond to the transaction with devsel_l, which induces the master abort condition back to the initiator. the transaction is then removed from the delayed transaction queue. when a master abort is received in response to a posted write transaction, pi7c8150b discards the posted write data and makes no more attempts to deliver the data. pi7c8150b sets the received-master-abort bit in the status register when the master abort is received on the primary bus, or it sets the received master abort bit in the secondary status register when the master abort is received on the secondary interface. when master abort is detected in posted write transaction with both master-abort-mode bit (bit 5 of bridge control register) and the serr_l enable bit (bit 8 of command register for secondary bus) are set, 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 36 of 107 april 20 15 C revision 2.1 pi7c8150b asserts p_serr_l if the master-abort- on -posted-write is not set. the master- abort- on -posted-write bit is bit 4 of the p_serr_l event disable register (offset 64h). note: when pi7c8150b performs a type 1 to special cycle conversion, a master abort is the expected termination for the special cycle on the target bus. in this case, the master abort received bit is not set, and the type 1 configuration transaction is disconnected after the first data phase. 3.8.3 target termination received by pi7c8150b when pi7c8150b initiates a transaction on the target bus and the target responds with devsel_l, the target can end the transaction with one of the following types of termination: ? normal termination (upon de-assertion of frame_l) ? target retry ? target disconnect ? target abort pi7c8150b handles these terminations in different ways, depending on the type of transaction being performed. 3.8.3.1 delayed write target termination response when pi7c8150b initiates a delayed write transaction, the type of target termination received from the target can be passed back to the initiator. table 3-7 shows the response to each type of target termination that occurs during a delayed write transaction. pi7c8150b repeats a delayed write transaction until one of the following conditions is met: ? pi7c8150b completes at least one data transfer. ? pi7c8150b receives a master abort. ? pi7c8150b receives a target abort. pi7c8150b makes 2 24 (default) or 2 32 (maximum) write attempts resulting in a response of target retry. table 3-7. delayed write target termination response target termination response normal returning disconnect to initiator with first data transfer only if multiple data phases requested . target retry returning target retry to initiator. continue write attempts to target target disconnect returning disconnect to initiator with first data transfer only if multiple data phases requested. target abort returning target abort to initiator. set received target abort bit in target interface status register. set signaled target abort bit in initiator interface status register. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 37 of 107 april 20 15 C revision 2.1 after the pi7c8150b makes 2 24 (default) attempts of the same delayed write trans-action on the target bus, pi7c815 0b asserts p_serr_l if the serr_l enable bit (bit 8 of command register for the secondary bus) is set and the delayed-write-non-delivery bit is not set. the delayed-write-non-delivery bit is bit 5 of p_serr_l event disable register (offset 64h). pi7c8150b will report system error. see section 6.4 for a description of system error conditions. 3.8.3.2 posted write target termination response when pi7c8150b initiates a posted write transaction, the target termination cannot be passed back to the initiator. table 3-8 shows the response to each type of target termination that occurs during a posted write transaction. table 3-8. response to posted write target termination target termination repsonse normal no additional action. target retry repeating write transaction to target. target disconnect initiate write transaction for delivering remaining posted write data. target abort set received - target - abort bit in the target interface status register. assert p_serr# if enabled, and set the signaled - system - error bit in primary status register. note that when a target retry or target disconnect is returned and posted write data associated with that transaction remains in the write buffers, pi7c8150b initiates another write transaction to attempt to deliver the rest of the write data. if there is a target retry, the exact same address will be driven as for the initial write trans-action attempt. if a target disconnect is received, the address that is driven on a subsequent write transaction attempt will be updated to reflect the address of the current dword. if the initial write transaction is memory-write-and-invalidate transaction, and a partial delivery of write data to the target is performed before a target disconnect is received, pi7c8150b will use the memory write command to deliver the rest of the write data. it is because an incomplete cache line will be transferred in the subsequent write transaction attempt. after the pi7c8150b makes 2 24 (default) write transaction attempts and fails to deliver all posted write data associated with that transaction, pi7c8150b asserts p_serr_l if the primary serr_l enable bit is set (bit 8 of command register for secondary bus) and posted-write-non-delivery bit is not set. the posted-write-non-delivery bit is the bit 2 of p_serr_l event disable register (offset 64h). pi7c8150b will report system error. see section 6.4 for a discussion of system error conditions. 3.8.3.3 delayed read target termination response when pi7c8150b initiates a delayed read transaction, the abnormal target responses can be passed back to the initiator. other target responses depend on how much data the initiator requests. table 3-9 shows the response to each type of target termination that occurs during a delayed read transaction. pi7c8150b repeats a delayed read transaction until one of the following conditions is met: ? pi7c8150b completes at least one data transfer. ? pi7c8150b receives a master abort. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 38 of 107 april 20 15 C revision 2.1 ? pi7c8150b receives a target abort. pi7c8150b makes 2 24 (default) read attempts resulting in a response of target retry. table 3-9. response to delayed read target termination target termination response normal if prefetchable, target disconnect only if initiator requests more data than read from target. if non - prefetchable, target disconnect on first data phase. target retry re - initiate read transaction to target target disconnect if initiator requests more data than read from target, return target disconnect to initiator. target abort return target abort to initiator. set received target abort bit in the target interface status register. set signaled ta rget abort bit in the initiator interface status register. after pi7c8150b makes 2 24 (default) attempts of the same delayed read transaction on the target bus, pi7c8150b asserts p_serr_l if the primary serr_l enable bit is set (bit 8 of command register for secondary bus) and the delayed-write-non-delivery bit is not set. the delayed-write-non-delivery bit is bit 5 of p_serr_l event disable register (offset 64h). pi7c8150b will report system error. see section 6.4 for a description of system error conditions. 3.8.4 target termination initiated by pi7c8150b pi7c8150b can return a target retry, target disconnect, or target abort to an initiator for reasons other than detection of that condition at the target interface. 3.8.4.1 target retry pi 7c8150b returns a target retry to the initiator when it cannot accept write data or return read data as a result of internal conditions. pi7c8150b returns a target retry to an initiator when any of the following conditions is met: for delayed write transactions: ? the transaction is being entered into the delayed transaction queue. ? transaction has already been entered into delayed transaction queue, but target response has not yet been received. ? target response has been received but has not progressed to the head of the return queue. ? the delayed transaction queue is full, and the transaction cannot be queued. ? a transaction with the same address and command has been queued. ? a locked sequence is being propagated across pi7c8150b, and the write transaction is not a locked transaction. ? the target bus is locked and the write transaction is a locked transaction. ? use more than 16 clocks to accept this transaction. for delayed read transactions: 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 39 of 107 april 20 15 C revision 2.1 ? the transaction is being entered into the delayed transaction queue. ? the read request has already been queued, but read data is not yet available. ? data has been read from target, but it is not yet at head of the read data queue or a posted write transaction precedes it. ? the delayed transaction queue is full, and the transaction cannot be queued. ? a delayed read request with the same address and bus command has already been queued. ? a locked sequence is being propagated across pi7c8150b, and the read transaction is not a locked transaction. ? pi7c78150b is currently discarding previously pre-fetched read data. ? the target bus is locked and the write transaction is a locked transaction. ? use more than 16 clocks to accept this transaction. for posted write transactions: ? the posted write data buffer does not have enough space for address and at least one dword of write data. ? a locked sequence is being propagated across pi7c8150b, and the write transaction is not a locked transaction. ? when a target retry is returned to the initiator of a delayed transaction, the initiator must repeat the transaction with the same address and bus command as well as the data if it is a write transaction, within the time frame specified by the master timeout value. otherwise, the transaction is discarded from the buffers. 3.8.4.2 target disconnect pi7c8150b returns a target disconnect to an initiator when one of the following conditions is met: ? pi7c8150b hits an internal address boundary. ? pi7c8150b cannot accept any more write data. ? pi7c8150b has no more read data to deliver. see section 3.5.4 for a description of write address boundaries, and section 3.6.3 for a description of read address boundaries. 3.8.4.3 target abort pi7c8150b returns a target abort to an initiator when one of the following conditions is met: 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 40 of 107 april 20 15 C revision 2.1 ? pi7c8150b is returning a target abort from the intended target. ? when pi7c8150b returns a target abort to the initiator, it sets the signaled target abort bit in the status register corresponding to the initiator interface. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 41 of 107 april 20 15 C revision 2.1 4 address decoding pi7c8150b uses three address ranges that control i/o and memory transaction forwarding. these address ranges are defined by base and limit address registers in the configuration space. this chapter describes these address ranges, as well as isa-mode and vga- addressing support. 4.1 address ranges pi7c8150b uses the following address ranges that determine which i/o and memory transactions are forwarded from the primary pci bus to the secondary pci bus, and from the secondary bus to the primary bus: ? two 32-bit i/o address ranges ? two 32-bit memory-mapped i/o (non-prefetchable memory) ranges ? two 32-bit prefetchable memory address ranges transactions falling within these ranges are forwarded downstream from the primary pci bus to the secondary pci bus. transactions falling outside these ranges are forwarded upstream from the secondary pci bus to the primary pci bus. no address translation is required in pi7c8150b. the addresses that are not marked for downstream are always forwarded upstream. 4.2 i/o address decoding pi7c8150b uses the following mechanisms that are defined in the configuration space to specify the i/o address space for downstream and upstream forwarding: ? i/o base and limit address registers ? the isa enable bit ? the vga mode bit ? the vga snoop bit this section provides information on the i/o address registers and isa mode. section 4.4 provides information on the vga modes. to enable downstream forwarding of i/o transactions, the i/o enable bit must be set in the command register in configuration space. all i/o transactions initiated on the primary bus will be ignored if the i/o enable bit is not set. to enable upstream forwarding of i/o transactions, the master enable bit must be set in the command register. if the master- enable bit is not set, pi7c8150b ignores all i/o and memory transactions initiated on the secondary bus. the master-enable bit also allows upstream forwarding of memory transactions if it is set. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 42 of 107 april 20 15 C revision 2.1 caution if any configuration state affecting i/o transaction forwarding is changed by a configuration write operation on the primary bus at the same time that i/o transactions are ongoing on the secondary bus, pi7c8150b response to the secondary bus i/o transactions is not predictable. configure the i/o base and limit address registers, isa enable bit, vga mode bit, and vga snoop bit before setting i/o enable and master enable bits, and change them subsequently only when the primary and secondary pci buses are idle. 4.2.1 i/o base and limit address register pi7c8150b implements one set of i/o base and limit address registers in configuration space that define an i/o address range per port downstream forwarding. pi7c8150b supports 32-bit i/o addressing, which allows i/o addresses downstream of pi7c8150b t o be mapped anywhere in a 4gb i/o address space. i/o transactions with addresses that fall inside the range defined by the i/o base and limit registers are forwarded downstream from the primary pci bus to the secondary pci bus. i/o transactions with addresses that fall outside this range are forwarded upstream from the secondary pci bus to the primary pci bus. the i/o range can be turned off by setting the i/o base address to a value greater than that of the i/o limit address. when the i/o range is turned off, all i/o trans-actions are forwarded upstream, and no i/o transactions are forwarded downstream. the i/o range has a minimum granularity of 4kb and is aligned on a 4kb boundary. the maximum i/o range is 4gb in size. the i/o base register consists of an 8-bit field at configuration address 1ch, and a 16-bit field at address 30h. the top 4 bits of the 8-bit field define bits [15:12] of the i/o base address. the bottom 4 bits read only as 1h to indicate that pi7c8150b supports 32-bit i/o addressing. bits [11:0] of the base address are assumed to be 0, which naturally aligns the base address to a 4kb boundary. the 16 bits contained in the i/o base upper 16 bits register at configuration offset 30h define ad[31:16] of the i/o base address. all 16 bits are read/write. after primary bus reset or chip reset, the value of the i/o base address is initialized to 0000 0000h. the i/o limit register consists of an 8-bit field at configuration offset 1dh and a 16-bit field at offset 32h. the top 4 bits of the 8-bit field define bits [15:12] of the i/o limit address. the bottom 4 bits read only as 1h to indicate that 32-bit i/o addressing is supported. bits [11:0] of the limit address are assumed to be fffh, which naturally aligns the limit address to the top of a 4kb i/o address block. the 16 bits contained in the i/o limit upper 16 bits register at configuration offset 32h define ad[31:16] of the i/o limit address. all 16 bits are read/write. after primary bus reset or chip reset, the value of the i/o limit address is reset to 0000 0fffh. note: the initial states of the i/o base and i/o limit address registers define an i/o range of 0000 0000h to 0000 0fffh, which is the bottom 4kb of i/o space. write these registers with their appropriate values before setting either the i/o enable bit or the master enable bit in the command register in configuration space. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 43 of 107 april 20 15 C revision 2.1 4.2.2 isa mode pi7c8150b supports isa mode by providing an isa enable bit in the bridge control register in configuration space. isa mode modifies the response of pi7c8150b inside the i/o address range in order to support mapping of i/o space in the presence of an isa bus in the system. this bit only affects the response of pi7c8150b when the transaction falls inside the address range defined by the i/o base and limit address registers, and only when this address also falls inside the first 64kb of i/o space (address bits [31:16] are 0000h). when the isa enable bit is set, pi7c8150b does not forward downstream any i/o transactions addressing the top 768 bytes of eac h aligned 1kb block. only those transactions addressing the bottom 256 bytes of an aligned 1kb block inside the base and limit i/o address range are forwarded downstream. transactions above the 64kb i/o address boundary are forwarded as defined by the address range defined by the i/o base and limit registers. accordingly, if the isa enable bit is set, pi7c8150b forwards upstream those i/o transactions addressing the top 768 bytes of each aligned 1kb block within the first 64kb of i/o space. the master enable bit in the command configuration register must also be set to enable upstream forwarding. all other i/o transactions initiated on the secondary bus are forwarded upstream only if they fall outside the i/o address range. when the isa enable bit is set, devices downstream of pi7c8150b can have i/o space mapped into the first 256 bytes of each 1kb chunk below the 64kb boundary, or anywhere in i/o space above the 64kb boundary. 4.3 memory address decoding pi7c8150b has three mechanisms for defining memory address ranges for forwarding of memory transactions: ? memory-mapped i/o base and limit address registers ? prefetchable memory base and limit address registers ? vga mode this section describes the first two mechanisms. section 4.4.1 describes vga mode. to enable downstream forwarding of memory transactions, the memory enable bit must be set in the command register in configuration space. to enable upstream forwarding of memory transactions, the master-enable bit must be set in the command register. the master-enable bit also allows upstream forwarding of i/o transactions if it is set. caution if any configuration state affecting memory transaction forwarding is changed by a configuration write operation on the primary bus at the same time that memory transactions are ongoing on the secondary bus, response to the secondary bus memory transactions is not predictable. configure the memory-mapped i/o base and limit address registers, prefetchable memory base and limit address registers, and vga mode bit before setting the memory enable and master enable bits, and change them subsequently only when the primary and secondary pci buses are idle. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 44 of 107 april 20 15 C revision 2.1 4.3.1 memory-mapped i/o base and limit address registers memory-mapped i/o is also referred to as non-prefetchable memory. memory addresses that cannot automatically be pre-fetched but that can be conditionally pre-fetched based on command type should be mapped into this space. read transactions to non-prefetchable space may exhibit side effects; this space may have non-memory-like behavior. pi7c8150b prefetches in this space only if the memory read line or memory read multiple commands are used; transactions using the memory read command are limited to a single data transfer. the memory-mapped i/o base address and memory-mapped i/o limit address registers define an address range that pi7c8150b uses to determine when to forward memory commands. pi7c8150b forwards a memory transaction from the primary to the secondary interface if the transaction address falls within the memory-mapped i/o address range. pi7c8150b ignores memory transactions initiated on the secondary interface that fall into this address range. any transactions that fall outside this address range are ignored on the primary interface and are forwarded upstream from the secondary interface (provided that they do not fall into the prefetchable memory range or are not forwarded downstream by the vga mechanism). the memory-mapped i/o range supports 32-bit addressing only. the pci- to -pci bridge architecture specification does not provide for 64-bit addressing in the memory-mapped i/o space. the memory-mapped i/o address range has a granularity and alignment of 1mb. the maximum memory-mapped i/o address range is 4gb. the memory-mapped i/o address range is defined by a 16-bit memory-mapped i/o base address register at configuration offset 20h and by a 16-bit memory-mapped i/o limit address register at offset 22h. the top 12 bits of each of these registers correspond to bits [31:20] of the memory address. the low 4 bits are hardwired to 0. the lowest 20 bits of the memory-mapped i/o base address are assumed to be 0 0000h, which results in a natural alignment to a 1mb boundary. the lowest 20 bits of the memory-mapped i/o limit address are assumed to be fffffh, which results in an alignment to the top of a 1mb block. note: the initial state of the memory-mapped i/o base address register is 0000 0000h. the initial state of the memory-mapped i/o limit address register is 000f ffffh. note that the initial states of these registers define a memory-mapped i/o range at the bottom 1mb block of memory. write these registers with their appropriate values before setting either the memory enable bit or the master enable bit in the command register in configuration space. to turn off the memory-mapped i/o address range, write the memory-mapped i/o base address register with a value greater than that of the memory-mapped i/o limit address register. 4.3.2 prefetchable memory base and limit address registers locations accessed in the prefetchable memory address range must have true memory-like behavior and must not exhibit side effects when read. this means that extra reads to a prefetchable memory location must have no side effects. pi7c8150b pre-fetches for all types of memory read commands in this address space. the prefetchable memory base address and prefetchable memory limit address registers define an address range that pi7c8150b uses to determine when to forward memory commands. pi7c8150b forwards a memory transaction from the primary to the secondary 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 45 of 107 april 20 15 C revision 2.1 interface if the transaction address falls within the prefetchable memory address range. pi7c8150b ignores memory transactions initiated on the secondary interface that fall into this address range. pi7c8150b does not respond to any transactions that fall outside this address range on the primary interface and forwards those transactions upstream from the secondary interface (provided that they do not fall into the memory-mapped i/o range or are not forwarded by the vga mechanism). the prefetchable memory range supports 64-bit addressing and provides additional registers to define the upper 32 bits of the memory address range, the prefetchable memory base address upper 32 bits register, and the prefetchable memory limit address upper 32 bits register. for address comparison, a single address cycle (32-bit address) prefetchable memory transaction is treated like a 64-bit address transaction where the upper 32 bits of the address are equal to 0. this upper 32-bit value of 0 is compared to the prefetchable memory base address upper 32 bits register and the prefetchable memory limit address upper 32 bits register. the prefetchable memory base address upper 32 bits register must be 0 to pass any single address cycle transactions downstream. prefetchable memory address range has a granularity and alignment of 1mb. maximum memory address range is 4gb when 32-bit addressing is being used. prefetchable memory address range is defined by a 16-bit prefetchable memory base address register at configuration offset 24h and by a 16-bit prefetchable memory limit address register at offset 26h. the top 12 bits of each of these registers correspond to bits [31:20] of the memory address. the lowest 4 bits are hardwired to 1h. the lowest 20 bits of the prefetchable memory base address are assumed to be 0 0000h, which results in a natural alignment to a 1mb boundary. the lowest 20 bits of the prefetchable memory limit address are assumed to be fffffh, which results in an alignment to the top of a 1mb block. note: the initial state of the prefetchable memory base address register is 0000 0000h. the initial state of the prefetchable memory limit address register is 000f ffffh. note that the initial states of these registers define a prefetchable memory range at the bottom 1mb block of memory. write these registers with their appropriate values before setting either the memory enable bit or the master enable bit in the command register in configuration space. to turn off the prefetchable memory address range, write the prefetchable memory base address register with a value greater than that of the prefetchable memory limit address register. the entire base value must be greater than the entire limit value, meaning that the upper 32 bits must be considered. therefore, to disable the address range, the upper 32 bits registers can both be set to the same value, while the lower base register is set greater than the lower limit register. otherwise, the upper 32-bit base must be greater than the upper 32- bit limit. 4.4 vga support pi7c8150b provides two modes for vga support: ? vga mode, supporting vga-compatible addressing ? vga snoop mode, supporting vga palette forwarding 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 46 of 107 april 20 15 C revision 2.1 4.4.1 vga mode when a vga-compatible device exists downstream from pi7c8150b, set the vga mode bit in the bridge control register in configuration space to enable vga mode. when pi7c8150b is operating in vga mode, it forwards downstream those transactions addressing the vga frame buffer memory and vga i/o registers, regardless of the values of the base and limit address registers. pi7c8150b ignores transactions initiated on the secondary interface addressing these locations. the vga frame buffer consists of the following memory address range: 000a 0000h C 000b ffffh read transactions to frame buffer memory are treated as non-prefetchable. pi7c8150b requests only a single data transfer from the target, and read byte enable bits are forwarded to the target bus. the vga i/o addresses are in the range of 3b0h C 3bbh and 3c0h C 3dfh i/o. these i/o addresses are aliases every 1kb throughout the first 64kb of i/o space. this means that address bits <15:10> are not decoded and can be any value, while address bits [31:16] must be all 0s. vga bios addresses starting at c0000h are not decoded in vga mode. 4.4.2 vga snoop mode pi7c8150b provides vga snoop mode, allowing for vga palette write transactions to be forwarded downstream. this mode is used when a graphics device downstream from pi7c8150b needs to snoop or respond to vga palette write transactions. to enable the mode, set the vga snoop bit in the command register in configuration space. note that pi7c8150b claims vga palette write transactions by asserting devsel_l in vga snoop mode. when vga snoop bit is set, pi7c8150b forwards downstream transactions within the 3c6h, 3c8h and 3c9h i/o addresses space. note that these addresses are also forwarded as part of the vga compatibility mode previously described. again, address bits <15:10> are not decoded, while address bits <31:16> must be equal to 0, which means that these addresses are aliases every 1kb throughout the first 64kb of i/o space. note: if both the vga mode bit and the vga snoop bit are set, pi7c8150b behaves in the same way as if only the vga mode bit were set. 5 transaction ordering to maintain data coherency and consistency, pi7c8150b complies with the ordering rules set forth in the pci local bus specification, revision 2.3, for transactions crossing the bridge. this chapter describes the ordering rules that control transaction forwarding across pi7c8150b. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 47 of 107 april 20 15 C revision 2.1 5.1 transactions governed by ordering rules ordering relationships are established for the following classes of transactions crossing pi7c8150b: posted write transactions, comprised of memory write and memory write and invalidate transactions . posted write transactions complete at the source before they complete at the destination; that is, data is written into intermediate data buffers before it reaches the target. delayed write request transactions, comprised of i/o write and configuration write transactions. delayed write requests are terminated by target retry on the initiator bus and are queued in the delayed transaction queue. a delayed write transaction must complete on the target bus before it completes on the initiator bus. delayed write completion transactions, comprised of i/o write and configuration write transactions. delayed write completion transactions complete on the target bus, and the target response is queued in the buffers. a delayed write completion transaction proceeds in the direction opposite that of the original delayed write request; that is, a delayed write completion transaction proceeds from the target bus to the initiator bus. delayed read request transactions, comprised of all memory read, i/o read, and configuration read transactions. delayed read requests are terminated by target retry on the initiator bus and are queued in the delayed transaction queue. delayed read completion transactions, comprised of all memory read, i/o read, & configuration read transactions. delayed read completion transactions complete on the target bus, and the read data is queued in the read data buffers. a delayed read completion transaction proceeds in the direction opposite that of the original delayed read request; that is, a delayed read completion transaction proceeds from the target bus to the initiator bus. pi7c8150b does not combine or merge write transactions: ? pi7c8150b does not combine separate write transactions into a single write transaction this optimization is best implemented in the originating master. ? pi7c8150b does not merge bytes on separate masked write transactions to the same dword address this optimization is also best implemented in the originating master. ? pi7c8150b does not collapse sequential write transactions to the same address into a single write transaction the pci local bus specification does not permit this combining of transactions. 5.2 general ordering guidelines independent transactions on primary and secondary buses have a relationship only when those transactions cross pi7c8150b. the following general ordering guidelines govern transactions crossing pi7c8150b: 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 48 of 107 april 20 15 C revision 2.1 ? the ordering relationship of a transaction with respect to other transactions is determined when the transaction completes, that is, when a transaction ends with a termination other than target retry. ? requests terminated with target retry can be accepted and completed in any order with respect to other transactions that have been terminated with target retry. if the order of completion of delayed requests is important, the initiator should not start a second delayed transaction until the first one has been completed. if more than one delayed transaction is initiated, the initiator should repeat all delayed transaction requests, using some fairness algorithm. repeating a delayed transaction cannot be contingent on completion of another delayed transaction. otherwise, a deadlock can occur. ? write transactions flowing in one direction have no ordering requirements with respect to write transactions flowing in the other direction. pi7c8150b can accept posted write transactions on both interfaces at the same time, as well as initiate posted write transactions on both interfaces at the same time. ? the acceptance of a posted memory write transaction as a target can never be contingent on the completion of a non-locked, non-posted transaction as a master. this is true for pi7c8150b and must also be true for other bus agents. otherwise, a deadlock can occur. ? pi7c8150b accepts posted write transactions, regardless of the state of completion of any delayed transactions being forwarded across pi7c8150b. 5.3 ordering rules table 5-1 shows the ordering relationships of all the transactions and refers by number to the ordering rules that follow. table 5-1. summary of transaction ordering pass posted write delayed read request delayed write request delayed read completion delayed write completion posted write no 1 yes 5 yes 5 yes 5 yes 5 de layed read request no 2 yes yes yes yes delayed write request no 4 yes yes yes yes delayed read completion no 3 yes yes yes yes delayed write completion yes yes yes yes yes note: the superscript accompanying some of the table entries refers to any applicable ordering rule listed in this section. many entries are not governed by these ordering rules; therefore, the implementation can choose whether or not the transactions pass each other. the entries without superscripts reflect the pi7c8150b s implementat ion choices. the following ordering rules describe the transaction relationships. each ordering rule is followed by an explanation, and the ordering rules are referred to by number in table 5-1 . these ordering rules apply to posted write transactions, delayed write and read requests, and delayed write and read completion transactions crossing pi7c8150b in the same direction. note that delayed completion transactions cross pi7c8150b in the direction opposite that of the corresponding delayed requests. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 49 of 107 april 20 15 C revision 2.1 1. posted write transactions must complete on the target bus in the order in which they were received on the initiator bus. the subsequent posted write transaction can be setting a flag that covers the data in the first posted write transaction; if the second transaction were to complete before the first transaction, a device checking the flag could subsequently consume stale data. 2. a delayed read request traveling in the same direction as a previously queued posted write transaction must push the posted write data ahead of it. the posted write transaction must complete on the target bus before the delayed read request can be attempted on the target bus. the read transaction can be to the same location as the write data, so if the read transaction were to pass the write transaction, it would return stale data. 3. a delayed read completion must pull ahead of previously queued posted write data traveling in the same direction. in this case, the read data is traveling in the same direction as the write data, and the initiator of the read transaction is on the same side of pi7c8150b as the target of the write transaction. the posted write transaction must complete to the target before the read data is returned to the initiator. the read transaction can be a reading to a status register of the initiator of the posted write data and therefore should not complete until the write transaction is complete. 4. delayed write requests cannot pass previously queued posted write data. for posted memory write transactions, the delayed write transaction can set a flag that covers the data in the posted write transaction. if the delayed write request were to complete before the earlier posted write transaction, a device checking the flag could subsequently consume stale data. 5. posted write transactions must be given opportunities to pass delayed read and write requests and completions. otherwise, deadlocks may occur when some bridges which support delayed transactions and other bridges which do not support delayed transactions are being used in the same system. a fairness algorithm is used to arbitrate between the posted write queue and the delayed transaction queue. 5.4 data synchronization data synchronization refers to the relationship between interrupt signaling and data delivery. the pci local bus specification, revision 2.3, provides the following alternative methods for synchronizing data and interrupts: ? the device signaling the interrupt performs a read of the data just written (software). ? the device driver performs a read operation to any register in the interrupting device before accessing data written by the device (software). ? system hardware guarantees that write buffers are flushed before interrupts are forwarded. pi7c8150b does not have a hardware mechanism to guarantee data synchronization for posted write transactions. therefore, all posted write transactions must be followed by a read operation, either from the device to the location just written (or some other location along the same path), or from the device driver to one of the device registers. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 50 of 107 april 20 15 C revision 2.1 6 error handling pi7c8150b checks, forwards, and generates parity on both the primary and secondary interfaces. to maintain transparency, pi7c8150b always tries to forward the existing parity condition on one bus to the other bus, along with address and data. pi7c8150b always attempts to be transparent when reporting errors, but this is not always possible, given the presence of posted data and delayed transactions. to support error reporting on the pci bus, pi7c8150b implements the following: ? perr_l and serr_l signals on both the primary and secondary interfaces ? primary status and secondary status registers ? the device-specific p_serr_l event disable register this chapter provides detailed information about how pi7c8150b handles errors. it also describes error status reporting and error operation disabling. 6.1 address parity errors pi7c8150b checks address parity for all transactions on both buses, for all address and all bus commands. when pi7c8150b detects an address parity error on the primary interface, the following events occur: ? if the parity error response bit is set in the command register, pi7c8150b does not claim the transaction with p_devsel_l; this may allow the transaction to terminate in a master abort. if parity error response bit is not set, pi7c8150b proceeds normally and accepts the transaction if it is directed to or across pi7c8150b. ? pi7c8150b sets the detected parity error bit in the status register. ? pi7c8150b asserts p_serr_l and sets signaled system error bit in the status register, if both the following conditions are met: ? the serr_l enable bit is set in the command register. ? the parity error response bit is set in the command register. when pi7c8150b detects an address parity error on the secondary interface, the following events occur: ? if the parity error response bit is set in the bridge control register, pi7c8150b does not claim the transaction with s_devsel_l; this may allow the transaction to terminat e in a master abort. if parity error response bit is not set, pi7c8150b proceeds normally and accepts transaction if it is directed to or across pi7c8150b. ? pi7c8150b sets the detected parity error bit in the secondary status register. ? pi7c8150b asserts p_serr_l and sets signaled system error bit in status register, if both of the following conditions are met: ? the serr_l enable bit is set in the command register. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 51 of 107 april 20 15 C revision 2.1 ? the parity error response bit is set in the bridge control register. 6.2 data parity errors wh en forwarding transactions, pi7c8150b attempts to pass the data parity condition from one interface to the other unchanged, whenever possible, to allow the master and target devices to handle the error condition. the following sections describe, for each type of transaction, the sequence of events that occurs when a parity error is detected and the way in which the parity condition is forwarded across pi7c8150b. 6.2.1 configuration write transactions to configuration space when pi7c8150b detects a data parity error during a type 0 configuration write transaction to pi7c8150b configuration space, the following events occur: if the parity error response bit is set in the command register, pi7c8150b asserts p_trdy_l and writes the data to the configuration register. pi7c8150b also asserts p_perr_l. if the parity error response bit is not set, pi7c8150b does not assert p_perr_l. pi7c8150b sets the detected parity error bit in the status register, regardless of the state of the parity error response bit. 6.2.2 read transactions when pi7c8150b detects a parity error during a read transaction, the target drives data and data parity, and the initiator checks parity and conditionally asserts perr_l. for downstream transactions, when pi7c8150b detects a read data parity error on the secondary bus, the following events occur: ? pi7c8150b asserts s_perr_l two cycles following the data transfer, if the secondary interface parity error response bit is set in the bridge control register. ? pi7c8150b sets the detected parity error bit in the secondary status register. ? pi7c8150b sets the data parity detected bit in the secondary status register, if the secondary interface parity error response bit is set in the bridge control register. ? pi7c8150b forwards the bad parity with the data back to the initiator on the primary bus. if the data with the bad parity is pre-fetched and is not read by the initiator on the primary bus, the data is discarded and the data with bad parity is not returned to the initiator. ? pi7c8150b completes the transaction normally. for upstream transactions, when pi7c8150b detects a read data parity error on the primary bus, the following events occur: 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 52 of 10 7 april 20 15 C revision 2.1 ? pi7c8150b asserts p_perr_l two cycles following the data transfer, if the primary interface parity error response bit is set in the command register. ? pi7c8150b sets the detected parity error bit in the primary status register. ? pi7c8150b sets the data parity detected bit in the primary status register, if the primary interface parity-error-response bit is set in the command register. ? pi7c8150b forwards the bad parity with the data back to the initiator on the secondary bus. if the data with the bad parity is pre-fetched and is not read by the initiator on the secondary bus, the data is discarded and the data with bad parity is not returned to the initiator. ? pi7c8150b completes the transaction normally. pi7c8150b returns to the initiator the data and parity that was received from the target. when the initiator detects a parity error on this read data and is enabled to report it, the initiator asserts perr_l two cycles after the data transfer occurs. it is assumed that the initiator takes responsibility for handling a parity error condition; therefore, when pi7c8150b detects perr_l asserted while returning read data to the initiator, pi7c8150b does not take any further action and completes the transaction normally. 6.2.3 delayed write transactions when pi7c8150b detects a data parity error during a delayed write transaction, the initiator drives data and data parity, and the target checks parity and conditionally asserts perr_l. for delayed write transactions, a parity error can occur at the following times: ? during the original delayed write request transaction ? when the initiator repeats the delayed write request transaction ? when pi7c8150b completes the delayed write transaction to the target when a delayed write transaction is normally queued, the address, command, address parity, data, byte enable bits, and data parity are all captured and a target retry is returned to the initiator. when pi7c8150b detects a parity error on the write data for the initial delayed write request transaction, the following events occur: ? if the parity-error-response bit corresponding to the initiator bus is set, pi7c8150b asserts trdy_l to the initiator and the transaction is not queued. if multiple data phases are requested, stop_l is also asserted to cause a target disconnect. two cycles after the data transfer, pi7c8150b also asserts perr_l. ? if the parity-error-response bit is not set , pi7c8150b returns a target retry. it queues the transaction as usual. pi7c8150b does not assert perr_l. in this case, the initiator repeats the transaction. ? pi7c8150b sets the detected-parity-error bit in the status register corresponding to the initiator bus, regardless of the state of the parity-error-response bit. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 53 of 107 april 20 15 C revision 2.1 note: if parity checking is turned off and data parity errors have occurred for queued or subsequent delayed write transactions on the initiator bus, it is possible that the initiators re-attempts of the write transaction may not match the original queued delayed write information contained in the delayed transaction queue. in this case, a master timeout condition may occur, possibly resulting in a system error (p_serr_l assertion). for downstream transactions, when pi7c8150b is delivering data to the target on the secondary bus and s_perr_l is asserted by the target, the following events occur: ? pi7c8150b sets the secondary interface data parity detected bit in the secondary status register, if the secondary parity error response bit is set in the bridge control register. ? pi7c8150b captures the parity error condition to forward it back to the initiator on the primary bus. similarly, for upstream transactions, when pi7c8150b is delivering data to the target on the primary bus and p_perr_l is asserted by the target, the following events occur: ? pi7c8150b sets the primary interface data-parity-detected bit in the status register, if the primary parity-error-response bit is set in the command register. ? pi7c8150b captures the parity error condition to forward it back to the initiator on the secondary bus. a delayed write transaction is completed on the initiator bus when the initiator repeats the write transaction with the same address, command, data, and byte enable bits as the delayed write command that is at the head of the posted data queue. note that the parity bit is not compared when determining whether the transaction matches those in the delayed transaction queues. two cases must be considered: ? when parity error is detected on the initiator bus on a subsequent re-attempt of the transaction and was not detected on the target bus ? when parity error is forwarded back from the target bus for downstream delayed write transactions, when the parity error is detected on the initiator bus and pi7c8150b has write status to return, the following events occur: ? pi7c8150b first asserts p_trdy_l and then asserts p_perr_l two cycles later, if the primary interface parity-error-response bit is set in the command register. ? pi7c8150b sets the primary interface parity-error-detected bit in the status register. ? because there was not an exact data and parity match, the write status is not returned and the transaction remains in the queue. similarly, for upstream delayed write transactions, when the parity error is detected on the initiator bus and pi7c8150b has write status to return, the following events occur: ? pi7c8150b first asserts s_trdy_l and then asserts s_perr_l two cycles later, if the secondary interface parity-error-response bit is set in the bridge control register (offset 3ch). 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 54 of 107 april 20 15 C revision 2.1 ? pi7c8150b sets the secondary interface parity-error-detected bit in the secondary status register. ? because there was not an exact data and parity match, the write status is not returned and the transaction remains in the queue. for downstream transactions, where the parity error is being passed back from the target bus and the parity error condition was not originally detected on the initiator bus, the following events occur: ? pi7c8150b asserts p_perr_l two cycles after the data transfer, if the following are both true: ? the parity-error-response bit is set in the command register of the primary interface. ? the parity-error-response bit is set in the bridge control register of the secondary interface. ? pi7c8150b completes the transaction normally. for upstream transactions, when the parity error is being passed back from the target bus and the parity error condition was not originally detected on the initiator bus, the following events occur: ? pi7c8150b asserts s_perr_l two cycles after the data transfer, if the following are both true: ? the parity error response bit is set in the command register of the primary interface. ? the parity error response bit is set in the bridge control register of the secondary interface. ? pi7c8150b completes the transaction normally. 6.2.4 posted write transactions during downstream posted write transactions, when pi7c8150b responds as a target, it detects a data parity error on the initiator (primary) bus and the following events occur: ? pi7c8150b asserts p_perr_l two cycles after the data transfer, if the parity error response bit is set in the command register of primary interface. ? pi7c8150b sets the parity error detected bit in the status register of the primary interface. ? pi7c8150b captures and forwards the bad parity condition to the secondary bus. ? pi7c8150b completes the transaction normally. similarly, during upstream posted write transactions, when pi7c8150b responds as a target, it detects a data parity error on the initiator (secondary) bus, the following events occur: 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 55 of 107 april 20 15 C revision 2.1 ? pi7c8150b asserts s_perr_l two cycles after the data transfer, if the parity error response bit is set in the bridge control register of the secondary interf ace. ? pi7c8150b sets the parity error detected bit in the status register of the secondary interface. ? pi7c8150b captures and forwards the bad parity condition to the primary bus. ? pi7c8150b completes the transaction normally. during downstream write transactions, when a data parity error is reported on the target (secondary) bus by the targets assertion of s_perr_l, the following events occur: ? pi7c8150b sets the data parity detected bit in the status register of secondary interface, if the parity error response bit is set in the bridge control register of the secondary interface. ? pi7c8150b asserts p_serr_l and sets the signaled system error bit in the status register, if all the following conditions are met: ? the serr_l enable bit is set in the command register. ? the posted write parity error bit of p_serr_l event disable register is not set. ? the parity error response bit is set in the bridge control register of the secondary interface. ? the parity error response bit is set in the command register of the primary interface. ? pi7c8150b has not detected the parity error on the primary (initiator) bus which the parity error is not forwarded from the primary bus to the secondary bus. during upstream write transactions, when a data parity error is reported on the target (primary) bus by the targets assertion of p_perr_l, the following events occur: ? pi7c8150b sets the data parity detected bit in the status register, if the parity error response bit is set in the command register of the primary interface. ? pi7c8150b asserts p_serr_l and sets the signaled system error bit in the status register, if all the following conditions are met: ? the serr_l enable bit is set in the command register. ? the parity error response bit is set in the bridge control register of the secondary interface. ? the parity error response bit is set in the command register of the primary interface. ? pi7c8150b has not detected the parity error on the secondary (initiator) bus, which the parity error is not forwarded from the secondary bus to the primary bus. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 56 of 107 april 20 15 C revision 2.1 assertion of p_serr_l is used to signal the parity error condition when the initiator does not know that the error occurred. because the data has already been delivered with no errors, there is no other way to signal this information back to the initiator. if the parity error has forwarded from the initiating bus to the target bus, p_serr_l will not be asserted. 6.3 data parity error reporting summary in the previous sections, the responses of pi7c8150b to data parity errors are presented according to the type of transaction in progress. this section organizes the responses of pi7c8150b to data parity errors according to the status bits that pi7c8150b sets and the signals that it asserts. table 6-1 shows setting the detected parity error bit in the status register, corresponding to the primary interface. this bit is set when pi7c8150b detects a parity error on the primary interface. table 6-1. setting the primary interface detected parity error bit primary detected parity error bit transaction type direction bus where error was detected primary/ secondary parity error response bits 0 read downstream primary x / x 0 read downstream secondary x / x 1 read upstream primary x / x 0 read upstream secondary x / x 1 posted write downstream primary x / x 0 posted write downstream secondary x / x 0 posted write upstream primary x / x 0 posted write upstream secondary x / x 1 delayed write downstream primary x / x 0 delayed write downstream secondary x / x 0 delayed write upstream primary x / x 0 delayed write upstream secondary x / x x = dont care table 6-2 shows setting the detected parity error bit in the secondary status register, corresponding to the secondary interface. this bit is set when pi7c8150b detects a parity error on the secondary interface. table 6-2. setting secondary interface detected parity error bit secondar y detected parity error bit transaction type direction bus where error was detected primary/ secondary parity error response bits 0 read downstream primary x / x 1 read downstream secondary x / x 0 read upstream primary x / x 0 read upstream seconda ry x / x 0 posted write downstream primary x / x 0 posted write downstream secondary x / x 0 posted write upstream primary x / x 1 posted write upstream secondary x / x 0 delayed write downstream primary x / x 0 delayed write downstream seconda ry x / x 0 delayed write upstream primary x / x 1 delayed write upstream secondary x / x x = dont care 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 57 of 107 april 20 15 C revision 2.1 table 6-3 shows setting data parity detected bit in the primary interfaces status register. this bit is set under the following conditions: ? pi7c8150b must be a master on the primary bus. ? the parity error response bit in the command register, corresponding to the primary interface, must be set. ? the p_perr_l signal is detected asserted or a parity error is detected on the primary bus. table 6-3. setting primary interface master data parity error detected bit primary data parity bit transaction type direction bus where error was detected primary / secondary parity error res ponse bits 0 read downstream primary x / x 0 read downstream secondary x / x 1 read upstream primary 1 / x 0 read upstream secondary x / x 0 posted write downstream primary x / x 0 posted write downstream secondary x / x 1 posted write upstream primary 1 / x 0 posted write upstream secondary x / x 0 delayed write downstream primary x / x 0 delayed write downstream secondary x / x 1 delayed write upstream primary 1 / x 0 delayed write upstream secondary x / x x grq?wfduh table 6-4 shows setting the data parity detected bit in the status register of secondary interface. this bit is set under the following conditions: ? the pi7c8150b must be a master on the secondary bus. ? the parity error response bit must be set in the bridge control register of secondary interface. ? the s_perr_l signal is detected asserted or a parity error is detected on the secondary bus. table 6-4. setting secondary interface master data parity error detected bit secondary detected parity detected bit transaction type direction bus where error was detected primary / secondary parity error response bits 0 read downstream primary x / x 1 read downstream secondary x / 1 0 read upstream pr imary x / x 0 read upstream secondary x / x 0 posted write downstream primary x / x 1 posted write downstream secondary x / 1 0 posted write upstream primary x / x 0 posted write upstream secondary x / x 0 delayed write downstream primary x / x 1 delayed write downstream secondary x / 1 0 delayed write upstream primary x / x 0 delayed write upstream secondary x / x ; grq?wfduh 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 58 of 107 april 20 15 C revision 2.1 table 6-5 shows assertion of p_perr_l. this signal is set under the following conditions: ? pi7c8150b is either the target of a write transaction or the initiator of a read transaction on the primary bus. ? the parity-error-response bit must be set in the command register of primary interface. ? pi7c8150b detects a data parity error on the primary bus or detects s_perr_l asserted during the completion phase of a downstream delayed write transaction on the target (secondary) bus. table 6-5. assertion of p_perr_l p_perr _l transaction type di rection bus where error was detected primary/ secondary parity error response bits 1 (de - asserted) read downstream primary x / x 1 read downstream secondary x / x 0 (asserted) read upstream primary 1 / x 1 read upstream secondary x / x 0 posted wri te downstream primary 1 / x 1 posted write downstream secondary x / x 1 posted write upstream primary x / x 1 posted write upstream secondary x / x 0 delayed write downstream primary 1 / x 0 2 delayed write downstream secondary 1 / 1 1 delayed wr ite upstream primary x / x 1 delayed write upstream secondary x / x x grq?wfduh 2 the parity error was detected on the target (secondary) bus but not on the initiator (primary) bus. table 6-6 shows assertion of s_perr_l that is set under the following conditions: ? pi7c8150b is either the target of a write transaction or the initiator of a read transaction on the secondary bus. ? the parity error response bit must be set in the bridge control register of secondary interface. ? pi7c8150b detects a data parity error on the secondary bus or detects p_perr_l asserted during the completion phase of an upstream delayed write transaction on the target (primary) bus. table 6-6. assertion of s_perr_l s_perr _l transaction type direction bus where error was detected primary/ secondary parity error response bits 1 (de - asserted) read downstream primary x / x 0 (asserted) read downstream secondary x / 1 1 read upstream primary x / x 1 re ad upstream secondary x / x 1 posted write downstream primary x / x 1 posted write downstream secondary x / x 1 posted write upstream primary x / x 0 posted write upstream secondary x / 1 1 delayed write downstream primary x / x 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 59 of 107 april 20 15 C revision 2.1 s_perr _l transaction type direction bus where error was detected primary/ secondary parity error response bits 1 delayed write downstream secondary x / x 0 2 delayed write upstream primary 1 / 1 0 delayed write upstream secondary x / 1 x = dont care 2 the parity error was detected on the target (secondary) bus but not on the initiator (primary) bus. table 6-7 shows assertion of p_serr_l. this signal is set under the following conditions: ? pi7c8150b has detected p_perr_l asserted on an upstream posted write transaction or s_perr_l asserted on a downstream posted write transaction. ? pi7c8150b did not detect the parity error as a target of the posted write transaction. ? the parity error response bit on the command register and the parity error response bit on the bridge control register must both be set. ? the serr_l enable bit must be set in the command register. table 6-7. assertion of p_serr_l for data parity errors p_serr _l transaction type direction bus where error was detected primary / secondary parity error response bits 1 (de - asserted) read downs tream primary x / x 1 read downstream secondary x / x 1 read upstream primary x / x 1 read upstream secondary x / x 1 posted write downstream primary x / x 0 2 (asserted) posted write downstream secondary 1 / 1 0 3 posted write upstream primary 1 / 1 1 posted write upstream secondary x / x 1 delayed write downstream primary x / x 1 delayed write downstream secondary x / x 1 delayed write upstream primary x / x 1 delayed write upstream secondary x / x x = dont care 2 the parity error was detected on the target (secondary) bus but not on the initiator (primary) bus. 3 the parity error was detected on the target (primary) bus but not on the initiator (secondary) bus. 6.4 system error (serr _l ) reporting pi7c8150b uses the p_serr_l signal to report conditionally a number of system error conditions in addition to the special case parity error conditions described in section 6.2.3 . whenever assertion of p_serr_l is discussed in this document, it is assumed that the following conditions apply: ? for pi7c8150b to assert p_serr_l for any reason, the serr_l enable bit must be set in the command register. ? whenever pi7c8150b asserts p_serr_l, pi7c8150b must also set the signaled system error bit in the status register. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 60 of 107 april 20 15 C revision 2.1 in compliance with the pci- to -pci bridge architecture specification, pi7c8150b asserts p_serr_l when it detects the secondary serr_l input, s_serr_l, asserted and the serr_l forward enable bit is set in the bridge control register. in addition, pi7c8150b also sets the received system error bit in the secondary status register. pi7c8150b also conditionally asserts p_serr_l for any of the following reasons: ? target abort detected during posted write transaction ? master abort detected during posted write transaction ? posted write data discarded after 2 24 (default) attempts to deliver (2 24 target retries received) ? parity error reported on target bus during posted write transaction (see previous section) ? delayed write data discarded after 2 24 (default) attempts to deliver (2 24 target retries received) ? delayed read data cannot be transferred from target after 2 24 (default) attempts (2 24 target retries received) ? master timeout on delayed transaction the device-specific p_serr_l status register reports the reason for the assertion of p_serr_l. most of these events have additional device-specific disable bits in the p_serr_l event disable register that make it possible to mask out p_serr_l assertion for specific events. the master timeout condition has a serr_l enable bit for that event in the bridge control register and therefore does not have a device-specific disable bit. 7 exclusive access this chapter describes the use of the lock_l signal to implement exclusive access to a target for transactions that cross pi7c815 0b . 7.1 concurrent locks the primary and secondary bus lock mechanisms operate concurrently except when a locked transaction crosses pi7c8150b. a primary master can lock a primary target without affecting the status of the lock on the secondary bus, and vice versa. this means that a primary master can lock a primary target at the same time that a secondary master locks a secondary target. 7.2 acquiring exclusive access across pi7c8150b for any pci bus, before acquiring access to the lock_l signal and starting a series of locked transactions, the initiator must first check that both of the following conditions are met: ? the pci bus must be idle. ? the lock_l signal must be de-asserted. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 61 of 107 april 20 15 C revision 2.1 the initiator leaves the lock_l signal de-asserted during the address phase and asserts lock_l one clock cycle later. once a data transfer is completed from the target, the target lock has been achieved. 7.2.1 locked transactions in downstream direction locked transactions can cross pi7c8150b only in the downstream direction, from the primary bus to the secondary bus. when the target resides on another pci bus, the master must acquire not only the lock on its own pci bus but also the lock on every bus between its bus and the targets bus. when pi7c8150b detects on the primary bus, an initial locked transaction intended for a target on the secondary bus, pi7c8150b samples the address, transaction type, byte enable bits, and parity, as described in section 3.5.4 . it also samples the lock signal. if there is a lock established between 2 ports or the target bus is already locked by another master, then the current lock cycle is retried without forward. because a target retry is signaled to the initiator, the initiator must relinquish the lock on the primary bus, and therefore the lock is not yet established. the first locked transaction must be a memory read transaction. subsequent locked transactions can be memory read or memory write transactions. posted memory write transactions that are a part of the locked transaction sequence are still posted. memory read transactions that are a part of the locked transaction sequence are not pre-fetched. when the locked delayed memory read request is queued, pi7c8150b does not queue any more transactions until the locked sequence is finished. pi7c8150b signals a target retry to all transactions initiated subsequent to the locked read transaction that are intended for targets on the other side of pi7c8150b . pi7c8150b allows any transactions queued before the locked transaction to complete before initiating the locked transaction. when the locked delayed memory read request transaction moves to the head of the delayed transaction queue, pi7c8150b initiates the transaction as a locked read transaction by de-asserting lock_l on the target bus during the first address phase, and by asserting lock_l one cycle later. if lock_l is already asserted (used by another initiator), pi7c8150b waits to request access to the secondary bus until lock_l is de-asserted when the target bus is idle. note that the existing lock on the target bus could not have crossed pi7c8150b. otherwise, the pending queued locked transaction would not have been queued. when pi7c8150b is able to complete a data transfer with the locked read transaction, the lock is established on the secondary bus. when the initiator repeats the locked read transaction on the primary bus with the same address, transaction type, and byte enable bits, pi7c8150b transfers the read data back to the initiator, and the lock is then also established on the primary bus. for pi7c8150b to recognize and respond to the initiator, the initiators subsequent attempts of the read transaction must use the locked transaction sequence (de-assert lock_l during address phase, and assert lock_l one cycle later). if the lock_l sequence is not used in subsequent attempts, a master timeout condition may result. when a master timeout condition occurs, serr_l is conditionally asserted (see section 6.4 ), the read data and queued read transaction are discarded, and the lock_l signal is de-asserted on the target bus. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 62 of 107 april 20 15 C revision 2.1 once the intended target has been locked, any subsequent locked transactions initiated on the initiator bus that are forwarded by pi7c8150b are driven as locked transactions on the target bus. the first transaction to establish lock_l must be memory read. if the first transaction is not memory read, the following transactions behave accordingly: ? type 0 configuration read/write induces master abort ? type 1 configuration read/write induces master abort ? i/o read induces master abort ? i/o write induces master abort ? memory write induces master abort when pi7c8150b receives a target abort or a master abort in response to the delayed locked read transaction, this status is passed back to the initiator, and no locks are established on either the target or the initiator bus. pi7c8150b resumes forwarding unlocked transactions in both directions. 7.2.2 locked transaction in upstream direction pi7c8150b ignores upstream lock and transactions. pi7c8150b will pass these transactions as normal transactions without lock established. 7.3 ending exclusive access after the lock has been acquired on both initiator and target buses, pi7c8150b must maintain the lock on the target bus for any subsequent locked transactions until the initiator relinquishes the lock. the only time a target-retry causes the lock to be relinquished is on the first transaction of a locked sequence. on subsequent transactions in the sequence, the target retry has no effect on the status of the lock signal. an established target lock is maintained until the initiator relinquishes the lock. pi7c8150b does not know whether the current transaction is the last one in a sequence of locked transactions until the initiator de-asserts the lock_l signal at end of the transaction. when the last locked transaction is a delayed transaction, pi7c8150b has already completed the transaction on the target bus. in this example, as soon as pi7c8150b detects that the initiator has relinquished the lock_l signal by sampling it in the de-asserted state while frame_l is de-asserted, pi7c8150b de -asserts the lock_l signal on the target bus as soon as possible. because of this behavior, lock_l may not be de-asserted until several cycles after the last locked transaction has been completed on the target bus. as soon as pi7c8150b has de-asserted lock_l to indicate the end of a sequence of locked transactions, it resumes forwarding unlocked transactions. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 63 of 107 april 20 15 C revision 2.1 when the last locked transaction is a posted write transaction, pi7c8150b de -asserts lock_l on the target bus at the end of the transaction because the lock was relinquished at the end of the write transaction on the initiator bus. when pi7c8150b receives a target abort or a master abort in response to a locked delayed transaction, pi7c8150b returns a target abort or a master abort when the initiator repeats the locked transaction. the initiator must then de-assert lock_l at the end of the transaction. pi7c8150b sets the appropriate status bits, flagging the abnormal target termination condition (see section 3.8 ). normal forwarding of unlocked posted and delayed transactions is resumed. when pi7c8150b receives a target abort or a master abort in response to a locked posted write transaction, pi7c8150b cannot pass back that status to the initiator. pi7c8150b asserts serr_l on the initiator bus when a target abort or a master abort is received during a locked posted write transaction, if the serr_l enable bit is set in the command register. signal serr_l is asserted for the master abort condition if the master abort mode bit is set in the bridge control register (see section 6.4 ). 8 pci bus arbitration pi7c8150b must arbitrate for use of the primary bus when forwarding upstream transactions. also, it must arbitrate for use of the secondary bus when forwarding downstream transactions. the arbiter for the primary bus resides external to pi7c8150b , typically on the motherboard. for the secondary pci bus, pi7c8150b implements an internal arbiter. this arbiter can be disabled, and an external arbiter can be used instead. this chapter describes primary and secondary bus arbitration. 8.1 primary pci bus arbitration pi7c8150b implements a request output pin, p_req_l, and a grant input pin, p_gnt_l, for primary pci bus arbitration. pi7c8150b asserts p_req_l when forwarding transactions upstream; that is, it acts as initiator on the primary pci bus. as long as at least one pending transaction resides in the queues in the upstream direction, either posted write data or delayed transaction requests, pi7c8150b keeps p_req_l asserted. however, if a target retry, target disconnect, or a target abort is received in response to a transaction initiated by pi7c8150b on the primary pci bus, pi7c8150b de -asserts p_req_l for two pci clock cycles. for all cycles through the bridge, p_req_l is not asserted until the transaction request has been completely queued. when p_gnt_l is asserted low by the primary bus arbiter after pi7c8150b has asserted p_req_l, pi7c8150b initiates a transaction on the primary bus during the next pci clock cycle. when p_gnt_l is asserted to pi7c8150b when p_req_l is not asserted, pi7c8150b parks p_ad, p_cbe, and p_par by driving them to valid logic levels. when the primary bus is parked at pi7c8150b and pi7c8150b has a transaction to initiate on the primary bus, pi7c8150b starts the transaction if p_gnt_l was asserted during the previous cycle. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 64 of 107 april 20 15 C revision 2.1 8.2 secondary pci bus arbitration pi7c8150b implements an internal secondary pci bus arbiter. this arbiter supports eight external masters on the secondary bus in addition to pi7c8150b. the internal arbiter can be disabled, and an external arbiter can be used instead for secondary bus arbitration. 8.2.1 secondary bus arbitration using the internal arbiter to use the internal arbiter, the secondary bus arbiter enable pin, s_cfn_l, must be tied low. pi7c8150b has nine secondary bus request input pins, s_req_l[8:0], and has nine secondary bus output grant pins, s_gnt_l[8:0], to support external secondary bus masters. the secondary bus request and grant signals are connected internally to the arbiter and are not brought out to external pins when s_cfn_l is high. figure 8-1 secondary arbiter example the secondary arbiter supports a 2-sets programmable 2-level rotating algorithm with each set taking care of 9 requests / grants. each set of masters can be assigned to a high priority group and a low priority group. the low priority group as a whole represents one entry in the high priority group; that is, if the high priority group consists of n masters, then in at least every n+1 transactions the highest priority is assigned to the low priority group. priority rotates evenly among the low priority group. therefore, members of the high priority group can be serviced n transactions out of n+1, while one member of the low priority group is serviced once every n+1 transactions. figure 9 C 1 shows an example of an internal arbiter where four masters, including pi7c8150b, are in the high priority group, and five masters are in the low priority group. using this example, if all requests are always asserted, the highest priority rotates among the masters in the following fashion (high priority members are given in italics, low priority members, in boldface type): b, m0, m1, m2, m3 , b, m0, m1, m2, m4 , b, m0, m1, m2, m5 , b, m0, m1, m2, m6 , b, m0, m1, m2, m7 and so on. each bus master, including pi7c8150b, can be configured to be in either the low priority group or the high priority group by setting the corresponding priority bit in the arbiter- control register. the arbiter-control register is located at offset 40h. each master has a corresponding bit. if the bit is set to 1, the master is assigned to the high priority group. if the bit is set to 0, the master is assigned to the low priority group. if all the masters are assigned to one group, the algorithm defaults to a straight rotating priority among all the masters. after reset, all external masters are assigned to the low priority group, and pi7c8150b is assigned to the high priority group. pi7c8150b receives highest priority on the target bus every other transaction and priority rotates evenly among the other masters. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 65 of 107 april 20 15 C revision 2.1 priorities are re-evaluated every time s_frame_l is asserted at the start of each new transaction on the secondary pci bus. from this point until the time that the next transaction starts, the arbiter asserts the grant signal corresponding to the highest priorit y request that is asserted. if a grant for a particular request is asserted, and a higher priority request subsequently asserts, the arbiter de-asserts the asserted grant signal and asserts the grant corresponding to the new higher priority request on the next pci clock cycle. when priorities are re-evaluated, the highest priority is assigned to the next highest priority master relative to the master that initiated the previous transaction. the master that initiated the last transaction now has the lowest priority in its group. if pi7c8150b detects that an initiator has failed to assert s_frame_l after 16 cycles of both grant assertion and a secondary idle bus condition, the arbiter de-asserts the grant. to prevent bus contention, if the secondary pci bus is idle, the arbiter never asserts one grant signal in the same pci cycle in which it de-asserts another. it de-asserts one grant and asserts the next grant, no earlier than one pci clock cycle later. if the secondary pci bus is busy, that is, s_frame_l or s_irdy_l is asserted, the arbiter can be de-asserted one grant and asserted another grant during the same pci clock cycle. 8.2.2 preemption preemption can be programmed to be either on or off, with the default to on (offset 4ch, bit 31=0). time- to -preempt can be programmed to 0, 1, 2, 4, 8, 16, 32, or 64 (default is 0) clocks. if the current master occupies the bus and other masters are waiting, the current master will be preempted by removing its grant (gnt#) after the next master waits for the time- to -preempt. 8.2.3 secondary bus arbitration using an external arbiter the internal arbiter is disabled when the secondary bus central function control pin, s_cfn_l, is tied high. an external arbiter must then be used. when s_cfn_l is tied high, pi7c8150b, reconfigures two pins to be external request and grant pins. the s_gnt_l[0] pin is reconfigured to be the external request pin because its an output. the s_req_l[0] pin is reconfigured to be the external grant pin because its an input. when an external arbiter is used, pi7c8150b uses the s_gnt_l[0] pin to request the secondary bus. when the reconfigured s_req_l[0] pin is asserted low after pi7c8150b has asserted s_gnt_l[0], pi7c8150b initiates a transaction on the secondary bus one cycle later. if grant is asserted and pi7c8150b has not asserted the request, pi7c8150b parks ad, cbe and par pins by driving them to valid logic levels. the unused secondary bus grant outputs, s_gnt_l[8:1] are driven high. the unused secondary bus request inputs, s_req_l[8:1], should be pulled high. 8.2.4 bus parking bus parking refers to driving the ad[31:0], cbe[3:0], and par lines to a known value while the bus is idle. in general, the device implementing the bus arbiter is responsible for parking the bus or assigning another device to park the bus. a device parks the bus when 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 66 of 107 april 20 15 C revision 2.1 the bus is idle, its bus grant is asserted, and the devices request is not asserted. the ad and cbe signals should be driven first, with the par signal driven one cycle later. pi7c8150b parks the primary bus only when p_gnt_l is asserted, p_req_l is de- asserted, and the primary pci bus is idle. when p_gnt_l is de-asserted, pi7c8150b 3- states the p_ad, p_cbe, and p_par signals on the next pci clock cycle. if pi7c8150b is parking the primary pci bus and wants to initiate a transaction on that bus, then pi7c8150b can start the transaction on the next pci clock cycle by asserting p_frame_l if p_gnt_l is still asserted. if the internal secondary bus arbiter is enabled, the secondary bus is always parked at the last master that used the pci bus. that is, pi7c8150b keeps the secondary bus grant asserted to a particular master until a new secondary bus request comes along. after reset, pi7c8150b parks the secondary bus at itself until transactions start occurring on the secondary bus. offset 48h, bit 1, can be set to 1 to park the secondary bus at pi7c8150b . by default, offset 48h, bit 1, is set to 0. if the internal arbiter is disabled, pi7c8150b parks the secondary bus only when the reconfigured grant signal, s_req_l[0], is asserted and the secondary bus is idle. 9 clocks this chapter provides information about the clocks. 9.1 primary clock inputs pi7c8150b implements a primary clock input for the pci interface. the primary interface is synchronized to the primary clock input, p_clk, and the secondary interface is synchronized to the secondary clock. in synchronous mode, the secondary clock is derived internally from the primary clock, p_clk. pi7c8150b operates at a maximum frequency of 66 mhz (33mhz for pi7c8150b-33). 9.2 secondary clock outputs pi7c8150b has 10 secondary clock outputs, s_clkout[9:0] that can be used as clock inputs for up to nine external secondary bus devices. in synchronous mode, the s_clkout[9:0] outputs are derived from p_clk. the secondary clock edges are delayed from p_clk edges by a minimum of 0ns. this is the rule for using secondary clocks: each secondary clock output is limited to no more than one load. 9.3 asynchronous mode in asynchronous mode, the pi7c8150b can be run in the following frequency configuration: primary (mhz) secondary (mhz) 25mhz to 66mhz 25mhz to 66mhz pi7c8150b-33 can be run in the following frequency configuration: 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 67 of 107 april 20 15 C revision 2.1 primary (mhz) secondary (mhz) 25mhz to 33mhz 25mhz to 33mhz to set asynchronous mode support, ms0 and ms1 must be configured accordingly: ms0 ms1 description 0 0 reserved for future use 0 1 reserved for future use 1 0 synchronous mode 1 1 asynchronous mode when ms0 and ms1 are pulled to high during the deassertion of p_rst, pi7c8150b will go into asynchronous mode. the secondary clock outputs will then be derived from async_clkin and not p_clk. s_clkout[9] is still connected to s_clkin to provide the same timing as the bus clocks. cfg66/scan_en_h becomes clk_rate in asynchronous mode. pulling clk_rate high sets s_clkout[9:0] equal to async_clkin. pulling clk_rate low sets s_clkout[9:0] to half the frequency of async_clkin. pi7c8150b will not be able to drive s_m66en in asynchronous mode. 10 general purpose i/o interface the pi7c8150b implements a 4-pin general purpose i/o interface. during normal operation, device specific configuration registers control the gpio interface. the gpio interface can be used for the following functions: ? during secondary interface reset, the gpio interface can be used to shift in a 16-bit serial stream that serves as a secondary bus clock disable mask. ? along with the gpio[3] pin, a live insertion bit can be used to bring the pi7c8150b to a halt through hardware, permitting live insertion of option cards behind the pi7c8150b. 10.1 gpio control registers during normal operation, the following device specific configuration registers control the gpio interface: ? the gpio output data register ? the gpio output enable control register ? the gpio input data register these registers consist of five 8-bit fields: ? write-1- to -set output data field ? write-1- to -clear output data field ? write-1- to -set signal output enable control field 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 68 of 107 april 20 15 C revision 2.1 ? write-1- to -clear signal output enable control field ? input data field the bottom four bits of the output enable fields control whether each gpio signal is input only or bi-directional. each signal is controlled independently by a bit in each output enable control field. if a 1 is written to the write-1- to -set field, the corresponding pin is activated as an output. if a 1 is written to the write-1- to -clear field, the output driver is tri- stated, and the pin is then input only. writing zeroes to these registers has no effect. the reset for these signals is input only. the input data field is read only and reflects the current value of the gpio pins. a type 0 configuration read operation to this address is used to obtain the values of these pins. all pins can be read at any time, whether configured as input only or as bi-directional. the output data fields also use the write-1- to -set and write-1- to -clear mode. if a 1 is written to the write-1- to -set field and the pin is enabled as an output, the corresponding gpio output is driven high. if a 1 is written to the write-1- to -clear field and the pin is enabled as an output, the corresponding gpio output is driven low. writing zeros to these registers has no effect. the value written to the output register will be driven only when the gpio signal is configured as bi-directional. a type 0 configuration write operation is used to program these fields. the rest value for the output is 0. 10.2 secondary clock control the pi7c8150b uses the gpio pins and the msk_in signal to input a 16-bit serial data stream. this data stream is shifted into the secondary clock control register and is used for selectively disabling secondary clock outputs. the serial data stream is shifted in as soon as p_rst_l is detected deasserted and the secondary reset signal, s_rst_l, is detected asserted. the deassertion of s_rst_l is delayed until the pi7c8150b completes shifting in the clock mask data, which takes 23 clock cycles. after that, the gpio pins can be used as general-purpose i/o pins. an external shift register should be used to load and shift the data. the gpio pins are used for shift register control and serial data input. table 10 -1 shows the operation of the gpio pins. table 10 -1. gpio operation gpio pin operation gpio[0] shift register clock o utput at 33mhz max frequency gpio[1] not used gpio[2] shift register control 0: load 1: shift gpio[3] not used the data is input through the dedicated input signal, msk_in. the shift register circuitry is not necessary for correct operation of pi7c8150b. the shift register can be eliminated, and msk_in can be tied low to enable all secondary clock outputs or tied high to force all secondary clock outputs high. table 10 -2 shows the format of the serial stream. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 69 of 107 april 20 15 C revision 2.1 table 10 -2. gpio serial data format bit description s_clkout [1:0] slot 0 prsnt#[1:0] or device 0 0 [3:2] slot 1 prsnt#[1:0] or device 1 1 [5:4] slot 2 prsnt#[1:0] or device 2 2 [7:6] slot 3 prsnt#[1:0] or device 3 3 [8] device 4 4 [9] device 5 5 [10] device 6 6 [11] device 7 7 [12] device 8 8 [13] pi7c8150b s_clkin 9 [14] reserved na [15] reserved na the first 8 bits contain the prsnt#[1:0] signal values for four slots, and these bits control the s_clkout[3:0] outputs. if one or both of the prsnt#[1:0] signals are 0, that indicates that a card is present in the slot and therefore the secondary clock for that slot is not masked. if these clocks are connected to devices and not to slots, one or both of the bits should be tied low to enable the clock. the next 5 bits are the clock mask for devices; each bit enables or disables the clock for one device. these bits control the s_clkout[8:4] outputs: 0 enables the clock, and 1 disables the clock. bit 13 is the clock enable bit for s_clkout[9], which is connected to pi7c8150b s s_clkin input. if desired, the assignment of s_clkout outputs to slots, devices, and pi7c8150b s s_clkin input can be rearranged from the assignment shown here. however, it is important that the serial data stream format match the assignment of s_clkout. the 8 least significant bits are connected to the prsnt# pins for the slots. the next 5 bits are tied high to disable their respective secondary clocks because those clocks are not connected to anything. the next bit is tied low because that secondary clock output is connected to the pi7c8150b s_clkin input. when the secondary reset signal, s_rst_l, is detected asserted and the primary reset signal, p_rst_l, is detected deasserted, pi 7c8150b drives gpio[2] low for one cycle to load the clock mask inputs into the shift register. on the next cycle, pi7c8150b drives gpio[2] high to perform a shift operation. this shifts the clock mask into msk_in; the most significant bit is shifted in first, and the least significant bit is shifted in last. after the shift operation is complete, pi7c8150b tri-states the gpio signals and can deassert s_rst_l if the secondary reset bit is clear. pi7c8150b then ignores msk_in. control of the gpio signal now reverts to pi7c8150b gpio control registers. the clock disable mask can be modified subsequently through a configuration write command to the secondary clock control register in device-specific configuration space. 10.3 live insertion the gpio[3] pin can be used, along with a live insertion mode bit, to disable transaction forwarding. to enable live insertion mode, the live insertion mode bit in the chip control register must be set to 1, and the output enable control for gpio[3] must be set to input only in the gpio output enable control register. when live insertion mode is enabled, whenever gpio[3] is 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 70 of 107 april 20 15 C revision 2.1 driven to a value of 1, the i/o enable, the memory enable, and the master enable bits are internally masked to 0. this means that, as a target, pi7c8150b no longer accepts any i/o or memory transactions, on either interface. when read, the register bits still reflect the value originally written by a configuration write command; when gpio[3] is deasserted, the internal enable bits return to their original value (as they appear when read from the command register). when this mode is enabled, as a master, pi7c8150b completes any posted write or delayed request transactions that have already been queued. delayed completion transactions are not returned to the master in this mode because pi7c8150b is not responding to any i/o or memory transactions during this time. pi7c8150b continues to accept configuration transactions in live insertion mode. once live insertion mode brings pi7c8150b to a halt and queued transactions are completed, the secondary reset bit in the bridge control register can be used to assert s_rst_l, if desired, to reset and tri-state secondary bus devices, and to enable any live insertion hardware. 11 pci power management pi7c8150b incorporates functionality that meets the requirements of the pci power management specificatio n, revision 1. 0. these features include: ? pci power management registers using the enhanced capabilities port (ecp) address mechanism ? support for d0, d3 hot and d3 cold power management states ? support for d0, d1, d2, d3 hot , and d3 cold power management states for devices behind the bridge ? support of the b2 secondary bus power state when in the d3 hot power management state table 11 -1 shows the states and related actions that pi7c8150b performs during power management transitions. (no other transactions are permitted.) table 11 -1. power management transitions current status next state action d0 d3cold power has been removed from pi7c8150b . a power - up reset must be performed to bring pi7c8150b to d0. d0 d3hot if enabled to do so by the bpcce pin, pi7c8150b will disable the secondary clocks and drive them low. d0 d2 unimplemented power state. p i7c8150b will ignore the write to the power state bits (power state remains at d0). d0 d1 unimplemented power state. pi7c8150b will ignore the write to the power state bits (power state remains at d0). d3hot d0 pi7c8150b enables secondary clock outputs and performs an internal chip reset. signal s_rst_l will not be asserted. all registers will be returned to the reset values and buffers will be cleared. d3hot d3cold power has been removed from pi7c8150b . a power - up reset must be performed to bring pi 7c8150b to d0. d3cold d0 power - up reset. pi7c8150b performs the standard power - up reset functions as described in section 12 . pme# signals are routed from downstream devices around pci- to -pci bridges. pme# signals do not pass through pci- to -pci bridges. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 71 of 107 april 20 15 C revision 2.1 12 reset this chapter describes the primary interface, secondary interface, and chip reset mechanisms. 12.1 primary interface reset pi7c8150b has a reset input, p_reset_l. when p_reset_l is asserted, the following events occur: ? pi7c8150b immediately tri-states all primary and secondary pci interface signals. ? pi7c8150b performs a chip reset. ? registers that have default values are reset. p_reset_l asserting and de-asserting edges can be asynchronous to p_clk and s_clkout. pi7c8150b is not accessible during p_reset_l. after p_reset_l is de- asserted, pi7c8150b remains inaccessible for 16 pci clocks before the first configuration transaction can be accepted. 12.2 secondary interface reset pi7c8150b is responsible for driving the secondary bus reset signals, s_reset_l. pi7c8150b asserts s_reset_l when any of the following conditions are met: signal p_reset_l is asserted. signal s_reset_l remains asserted as long as p_reset_l is asserted and does not de-assert until p_reset_l is de-asserted. the secondary reset bit in the bridge control register is set. signal s_reset_l remains asserted until a configuration write operation clears the secondary reset bit. s_reset_l pin is asserted. when s_reset_l is asserted, pi7c8150b immediately 3- states all the secondary pci interface signals associated with the secondary port. the s_reset_l in asserting and de-asserting edges can be asynchronous to p_clk. when s_reset_l is asserted, all secondary pci interface control signals, including the secondary grant outputs, are immediately 3-stated. signals s1_ad, s1_cbe[3:0]#, s_par are driven low for the duration of s_reset_l assertion. all posted write and delayed transaction data buffers are reset. therefore, any transactions residing inside the buffers at the time of secondary reset are discarded. when s_reset_l is asserted by means of the secondary reset bit, pi7c8150b remains accessible during secondary interface reset and continues to respond to accesses to its configuration space from the primary interface. 12.3 chip reset the chip reset bit in the diagnostic control register can be used to reset the pi7c8150b and the secondary bus. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 72 of 107 april 20 15 C revision 2.1 when the chip reset bit is set, all registers and chip state are reset and all signals are tristated. s_reset_l is asserted and the secondary reset bit is automatically set. s_reset_l remains asserted until a configuration write operation clears the secondary reset bit and the serial clock mask has been shifted in. within 20 pci clock cycles after completion of the configuration write operation, pi7c8150b s reset bit automatically clears and pi7c8150b is ready for configuration. during reset, pi7c8150b is inaccessible. 13 supported commands the pci command set is given below for the primary and secondary interfaces. 13.1 pr imary interface p_cbe [3:0] command action 0000 interrupt acknowledge ignore 0001 special cycle do not claim. ignore. 0010 i/o read 1. if address is within pass through i/o range, claim and pass through. 2. otherwise, do not pass through and do not cl aim for internal access. 0011 i/o write same as i/o read. 0100 reserved ----- 0101 reserved ----- 0110 memory read 1. if address is within pass through memory range, claim and pass through. 2. if address is within pass through memory mapped i/o range, claim and pass through. 3. otherwise, do not pass through and do not claim for internal access. 0111 memory write same as memory read. 1000 reserved ----- 1001 reserved ----- 1010 configuration read type 0 configuration read: if the bridges idsel li ne is asserted, perform function decode and claim if target function is implemented. otherwise, ignore. if claimed, permit access to target functions configuration registers. do not pass through under any circumstances. type 1 configuration read: 1. i f the target bus is the bridges secondary bus: claim and pass through as a type 0 configuration read. 2. if the target bus is a subordinate bus that exists behind the bridge (but not equal to the secondary bus): claim and pass through as a type 1 configu ration read. 3. otherwise, ignore. 1011 configuration write type 0 configuration write: same as configuration read. type 1 configuration write (not special cycle request): 1. if the target bus is the bridges secondary bus: claim and pass through as a type 0 configuration write 2. if the target bus is a subordinate bus that exists behind the 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 73 of 107 april 20 15 C revision 2.1 p_cbe [3:0] command action bridge (but not equal to the secondary bus): claim and pass through unchanged as a type 1 configuration write. 3. otherwise, ignore. configuration write as speci al cycle request (device = 1fh, function = 7h) 1. if the target bus is the bridges secondary bus: claim and pass through as a special cycle. 2. if the target bus is a subordinate bus that exists behind the bridge (but not equal t o the secondary bus): claim and pass through unchanged as a type 1 configuration write. 3. otherwise ignore 1100 memory read multiple same as memory read 1101 dual address cycle supported 1110 memory read line same as memory read 1111 memory wr ite and invalidate same as memory read 13.2 secondary interface s_cbe[3:0] command action 0000 interrupt acknowledge ignore 0001 special cycle do not claim. ignore. 0010 i/o read same as primary interface 0011 i/o write same as i/o read. 0100 reserved - ---- 0101 reserved ----- 0110 memory read same as primary interface 0111 memory write same as memory read. 1000 reserved ----- 1001 reserved ----- 1010 configuration read ignore 1011 configuration write i. type 0 configuration write: ignore ii. typ e 1 configuration write (not special cycle request):ignore iii. configuration write as special cycle request (device = 1fh, function = 7h): 1. if the target bus is the bridges primary bus: claim and pass through as a special cycle 2. if the target bus i s neither the primary bus nor is it in range of buses defined by the bridges secondary and subordinate bus registers: claim and pass through unchanged as a type 1 configuration write. 3. if the target bus is not the bridges primary bus, but is in range of buses defined by the bridges secondary and subordinate bus registers: ignore. 1100 memory read multiple same as memory read 1101 dual address cycle supported 1110 memory read line same as memory read 1111 memory write and invalidate same as memory read 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 74 of 107 april 20 15 C revision 2.1 14 configuration registers pci configuration defines a 64-byte space (configuration header) to define various attributes of pi7c8150b as shown below. 14.1 configuration register 31 - 24 23 - 16 15 - 8 7 - 0 address device id vendor id 00h primary status comm and 04h class code revision id 08h reserved header type primary latency timer cache line size 0ch reserved 10h reserved 14h secondary latency timer subordinate bus number secondary bus number primary bus number 18h secondary status i/o limit i/o base 1ch memory limit memory base 20h prefetchable memory limit prefetchable memory base 24h prefetchable base upper 32 - bit 28h prefetchable limit upper 32 - bit 2ch i/o limit upper 16 - bit i/o base upper 16 - bit 30h reserved capability pointer to dch 34h r eserved 38h bridge control reserved interrupt line 3ch arbiter control diagnostic / chip control 40h reserved 44h upstream memory control extended chip control 48h secondary bus arbiter preemption control hot swap switch time slot 4ch upstream (s to p) memory limit upstream (s to p) memory base 50h upstream (s to p) memory base upper 32 - bit 54h upstream (s to p) memory limit upper 32 - bit 58h reserved 5ch reserved 60h gpio data and control p_serr# event disable 64h reserved p_serr_l status second ary clock control 68h reserved 6ch reserved 70h reserved port option 74h retry counter 78h reserved 7ch secondary master timeout counter primary master timeout counter 80h reserved 84h - afh chassis number slot number next pointer capability id b0h reserved b4h - d8h power management capabilities next item pointer capability id dch reserved ppb support extensions power management data e0h reserved next pointer capability id e4h reserved e8h - ffh 14.1.1 vendor id register C offset 00h bit function type d escription 15:0 vendor id r/o identifies pericom as vendor of this device. hardwired as 12d8h. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 75 of 107 april 20 15 C revision 2.1 14.1.2 device id register C offset 00h bit function type description 31:16 device id r/o identifies this device as the pi7c8150b . hardwired as 8150h. 14.1.3 command register C offset 04h bit function type description 0 i/o space enable r/w controls response to i/o access on the primary interface 0: ignore i/o transactions on the primary interface 1: enable response to i/o transactions on the primary interface reset to 0 1 memory space enable r/w controls response to memory accesses on the primary interface 0: ignore memory transactions on the primary interface 1: enable response to memory transactions on the primary interface reset to 0 2 bus master enable r/w c ontrols ability to operate as a bus master on the primary interface 0: do not initiate memory or i/o transactions on the primary interface and disable response to memory and i/o transactions on the secondary interface 1: enables 7c8150 to operate as a ma ster on the primary interfaces for memory and i/o transactions forwarded from the secondary interface reset to 0 3 special cycle enable r/o no special cycles defined. bit is defined as read only and returns 0 when read 4 memory write and invalidate enab le r/o memory write and invalidate not supported. bit is implemented as read only and returns 0 when read (unless forwarding a transaction for another master) 5 vga palette snoop enable r/w controls response to vga compatible palette accesses 0: ignore v ga palette accesses on the primary 1: enable positive decoding response to vga palette writes on the primary interface with i/o address bits ad[9:0] equal to 3c6h, 3c8h, and 3c9h (inclusive of isa alias; ad[15:10] are not decoded and may be any value) re set to 0 6 parity error response r/w controls response to parity errors 0: 7c8150 may ignore any parity errors that it detects and continue normal operation 1: 7c8150 must take its normal action when a parity error is detected reset to 0 7 wait cycle control r/o controls the ability to perform address / data stepping 0: disable address/data stepping (affects primary and secondary) 1: enable address/data stepping (affects primary and secondary) reset to 0 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 76 of 107 april 20 15 C revision 2.1 bit function type description 8 p_serr_l enable r/w controls the enable fo r the p_serr_l pin 0: disable the p_serr_l driver 1: enable the p_serr_l driver reset to 0 9 fast back - to - back enable r/w controls 7c8150s ability to generate fast back - to - back transactions to different devices on the primary interface. 0: no fast ba ck - to - back transactions 1: enable fast back - to - back transactions reset to 0 15:10 reserved r/o returns 000000 when read 14.1.4 status register C offset 04h bit function type description 19:16 reserved r/o reset to 0 20 capabilities list r/o set to 1 to ena ble support for the capability list (offset 34h is the pointer to the data structure) reset to 1 21 66mhz capable r/o set to 1 to enable 66mhz operation on the primary interface reset to 1 22 reserved r/o reset to 0 23 fast back - to - back capable r/o se t to 1 to enable decoding of fast back - to - back transactions on the primary interface to different targets reset to 1 24 data parity error detected r/wc set to 1 when p_perr_l is asserted and bit 6 of command register is set reset to 0 26:25 devsel_l t iming r/o devsel_l timing (medium decoding) 00: fast devsel_l decoding 01: medium devsel_l decoding 10: slow devsel_l decoding 11: reserved reset to 01 27 signaled target abort r/wc set to 1 (by a target device) whenever a target abort cycle occurs res et to 0 28 received target abort r/wc set to 1 (by a master device) whenever transactions are terminated with target aborts reset to 0 29 received master abort r/wc set to 1 (by a master) when transactions are terminated with master abort reset to 0 3 0 signaled system error r/wc set to 1 when p_serr_l is asserted reset to 0 31 detected parity error r/wc set to 1 when address or data parity error is detected on the primary interface reset to 0 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 77 of 107 april 20 15 C revision 2.1 14.1.5 revision id register C offset 08h bit function type des cription 7:0 revision r/o indicates revision number of device. hardwired to 0 2 h 14.1.6 class code register C offset 08h bit function type description 15:8 programming interface r/o read as 0 to indicate no programming interfaces have been defined for pci - to - pci bridges 23:16 sub - class code r/o read as 04h to indicate device is pci - to - pci bridge 31:24 base class code r/o read as 06h to indicate device is a bridge device 14.1.7 cache line size register C offset 0ch bit function type description 7:0 cache line siz e r/w designates the cache line size for the system and is used when terminating memory write and invalidate transactions and when prefetching memory read transactions. only cache line sizes (in units of 4 - byte) which are a power of two are valid (only one bit can be set in this register; only 00h, 01h, 02h, 04h, 08h, and 10h are valid values). reset to 0 14.1.8 primary latency timer register C offset 0ch bit function type description 15:8 primary latency timer r/w this register sets the value for the master la tency timer, which starts counting when the master asserts frame_l. reset to 0 14.1.9 header type register C offset 0ch bit function type description 23:16 header type r/o read as 01h to indicate that the register layout conforms to the standard pci - to - pci br idge layout. 14.1.10 primary bus number registser C offset 18h bit function type description 7:0 primary bus number r/w indicates the number of the pci bus to which the primary interface is connected. the value is set in software during configuration. reset t o 0 14.1.11 secondary bus number register C offset 18h bit function type description 15:8 secondary bus number r/w indicates the number of the pci bus to which the secondary interface is connected. the value is set in software during configuration. reset to 0 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 78 of 107 april 20 15 C revision 2.1 14.1.12 subordinate bus number register C offset 18h bit function type description 23:16 subordinate bus number r/w indicates the number of the pci bus with the highest number that is subordinate to the bridge. the value is set in software during configuratio n. reset to 0 14.1.13 secondary latency timer register C offset 18h bit function type description 31:24 secondary latency timer r/w latency timer for secondary. indicates the number of pci clocks from the assertion of s_frame_l to the expiration of the timer when the bridge is acting as a master on the secondary. 0: bridge ends the transaction after the first data transfer when the bridges secondary bus grant has been deasserted, with the exception of memory write and invalidate transactions. reset to 0 14.1.14 i/o base register C offset 1ch bit function type description 3:0 32 - bit indicator r/o read as 01h to indicate 32 - bit i/o addressing 7:4 i/o base address [15:12] r/w defines the bottom address of the i/o address range for the bridge to determine when to fo rward i/o transactions from one interface to the other. the upper 4 bits correspond to address bits [15:12] and are writable. the lower 12 bits corresponding to address bits [11:0] are assumed to be 0. the upper 16 bits corresponding to address bits [31 :16] are defined in the i/o base address upper 16 bits address register reset to 0 14.1.15 i/o limit register C offset 1ch bit function type description 11:8 32 - bit indicator r/o read as 01h to indicate 32 - bit i/o addressing 15:12 i/o base address [15:12] r/w defines the top address of the i/o address range for the bridge to determine when to forward i/o transactions from one interface to the other. the upper 4 bits correspond to address bits [15:12] and are writable. the lower 12 bits corresponding to addre ss bits [11:0] are assumed to be fffh. the upper 16 bits corresponding to address bits [31:16] are defined in the i/o base address upper 16 bits address register reset to 0 14.1.16 secondary status register C offset 1ch bit function type description 20:16 res erved r/o reset to 0 21 66mhz capable r/o set to 1 to enable 66mhz operation on the secondary interface reset to 1 22 reserved r/o reset to 0 23 fast back - to - back capable r/o set to 1 to enable decoding of fast back - to - back transactions on the seconda ry interface to different targets reset to 1 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 79 of 107 april 20 15 C revision 2.1 bit function type description 24 master data parity error detected r/wc set to 1 when s_perr_l is asserted and bit 6 of command register is set reset to 0 26:25 devsel_l timing r/o devsel# timing (medium decoding) 00: fast devsel_l deco ding 01: medium devsel_l decoding 10: slow devsel_l decoding 11: reserved reset to 01 27 signaled target abort r/wc set to 1 (by a target device) whenever a target abort cycle occurs on its secondary interface reset to 0 28 received target abort r/wc s et to 1 (by a master device) whenever transactions on its secondary interface are terminated with target abort reset to 0 29 received master abort r/wc set to 1 (by a master) when transactions on its secondary interface are terminated with master abort reset to 0 30 received system error r/wc set to 1 when s_serr_l is asserted reset to 0 31 detected parity error r/wc set to 1 when address or data parity error is detected on the secondary interface reset to 0 14.1.17 memory base register C offset 20h bit function type description 3:0 r/o lower four bits of register are read only and return 0. reset to 0 15:4 memory base address [15:4] r/w defines the bottom address of an address range for the bridge to determine when to forward memory transactions from one interface to the other. the upper 12 bits correspond to address bits [31:20] and are writable. the lower 20 bits corresponding to address bits [19:0] are assumed to be 0. reset to 0 14.1.18 memory limit register C offset 20h bit function type descri ption 19:16 r/o lower four bits of register are read only and return 0. reset to 0 31:20 memory limit address [31:20] r/w defines the top address of an address range for the bridge to determine when to forward memory transactions from one interface to the other. the upper 12 bits correspond to address bits [31:20] and are writable. the lower 20 bits corresponding to address bits [19:0] are assumed to be fffffh. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 80 of 107 april 20 15 C revision 2.1 14.1.19 pefetchable memory base register C offset 24h bit function type description 3:0 64 - bit a ddressing r/o indicates 64 - bit addressing 0000: 32 - bit addressing 0001: 64 - bit addressing reset to 1 15:4 prefetchable memory base address [31:20] r/w defines the bottom address of an address range for the bridge to determine when to forward memory rea d and write transactions from one interface to the other. the upper 12 bits correspond to address bits [31:20] and are writable. the lower 20 bits are assumed to be 0. 14.1.20 prefetchable memory limit register C offset 24h bit function type description 19:16 64 - bit addressing r/o indicates 64 - bit addressing 0000: 32 - bit addressing 0001: 64 - bit addressing reset to 1 31:20 prefetchable memory limit address [31:20] r/w defines the top address of an address range for the bridge to determine when to forward me mory read and write transactions from one interface to the other. the upper 12 bits correspond to address bits [31:20] and are writable. the lower 20 bits are assumed to be fffffh. 14.1.21 prefetchable memory base address upper 32-bits register C offset 28h bi t function type description 31:0 prefetchable memory base address, upper 32 - bits [63:32] r/w defines the upper 32 - bits of a 64 - bit bottom address of an address range for the bridge to determine when to forward memory read and write transactions from one i nterface to the other. reset to 0 14.1.22 prefetchable memory limit address upper 32-bits register C offset 2ch bit function type description 31:0 prefetchable memory limit address, upper 32 - bits [63:32] r/w defines the upper 32 - bits of a 64 - bit top address of an address range for the bridge to determine when to forward memory read and write transactions from one interface to the other. reset to 0 14.1.23 i/o base address upper 16-bits register C offset 30h bit function type description 15:0 i/o base address, up per 16 - bits [31:16] r/w defines the upper 16 - bits of a 32 - bit bottom address of an address range for the bridge to determine when to forward i/o transactions from one interface to the other. reset to 0 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 81 of 107 april 20 15 C revision 2.1 14.1.24 i/o limit address upper 16-bits register C offset 30h bit function type description 31:0 i/o limit address, upper 16 - bits [31:16] r/w defines the upper 16 - bits of a 32 - bit top address of an address range for the bridge to determine when to forward i/o transactions from one interface to the other. reset t o 0 14.1.25 ecp pointer register C offset 34h bit function type description 7:0 enhanced capabilities port pointer r/ o enhanced capabilities port offset pointer. read as dch to indicate that the first item resides at that configuration offset. 14.1.26 interrupt line register C offset 3ch bit function type description 7:0 interrupt line r/w for post to program to ffh, indicating that the pi7c8150b does not implement an interrupt pin. 14.1.27 interrupt pin register C offset 3ch bit function type description 15:8 interrupt pin r/o interrupt pin not supported on the pi7c8150b 14.1.28 bridge control register C offset 3ch bit function type description 16 parity error response r/w controls the bridges response to parity errors on the secondary interface. 0: ignore address and data parity errors on the secondary interface 1: enable parity error reporting and detection on the secondary interface reset to 0 17 s_serr_l enable r/w controls the forwarding of s_serr_l to the primary interface. 0: disable the forwarding of s_s err_l to primary interface 1: enable the forwarding of s_serr_l to primary interface reset to 0 18 isa enable r/w modifies the bridges response to isa i/o addresses, applying only to those addresses falling within the i/o base and limit address registe rs and within the first 64kb or pci i/o space. 0: forward all i/o addresses in the range defined by the i/o base and i/o limit registers 1: blocks forwarding of isa i/o addresses in the range defined by the i/o base and i/o limit registers that are in th e first 64kb of i/o space that address the last 768 bytes in each 1kb block. secondary i/o transactions are forwarded upstream if the address falls within the last 768 bytes in each 1kb block reset to 0 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 82 of 107 april 20 15 C revision 2.1 bit function type description 19 vga enable r/w controls the bridges response t o vga compatible addresses. 0: does not forward vga compatible memory and i/o addresses from primary to secondary 1: forward vga compatible memory and i/o addresses from primary to secondary regardless of other settings reset to 0 20 reserved r/o reser ved. returns 0 when read. 21 master abort mode r/w controls bridges behavior responding to master aborts on secondary interface. 0: does not report master aborts (returns ffff_ffffh on reads and discards data on writes) 1: reports master a borts by signaling target abort if possible by the assertion of p_serr_l if enabled reset to 0 22 secondary interface reset r/w controls the assertion of s_reset_l signal pin on the secondary interface 0: does not force the assertion of s_reset_l pin 1 : forces the assertion of s_reset_l reset to 0 23 fast back - to - back enable r/w controls bridges ability to generate fast back - to - back transactions to different devices on the secondary interface. 0: does not allow fast back - to - back transactions 1: ena bles fast back - to - back transactions reset to 0 24 primary master timeout r/w sets the maximum number of pci clocks the bridge will wait for an initiator on the primary to repeat a delayed transaction request. the counter starts right after the delayed t ransaction is at the front of the queue. if the master has not repeated at least once before the counter expires, the bridge discards the transaction from the queue. 0: 2 15 pci clocks 1: 2 10 pci clocks reset to 0 25 secondary master timeout r/w sets t he maximum number of pci clocks the bridge will wait for an initiator on the secondary to repeat a delayed transaction request. the counter starts right after the delayed transaction is at the front of the queue. if the master has not repeated at least onc e before the counter expires, the bridge discards the transaction from the queue. 0: 2 15 pci clocks 1: 2 10 pci clocks reset to 0 26 master timeout status r/wc this bit is set to 1 when either the primary master timeout counter or secondary master timeo ut counter expires. reset to 0 27 discard timer p_serr_l enable r/w this bit is set to 1 and p_serr_l is asserted when either the primary discard timer or the secondary discard timer expire. reset to 0 31 - 28 reserved r/o reserved. returns 0 when read. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 83 of 107 april 20 15 C revision 2.1 14.1.29 diagnostic / chip control register C offset 40h bit function type description 0 reserved r/o reserved. returns 0 when read. 1 memory write disconnect control r/w controls when the bridge (as a target) disconnects memory write transactions. 0: memory write disconnects at 4kb aligned address boundary 1: memory write disconnects at cache line aligned address boundary reset to 0 3:2 reserved r/o reserved. returns 0 when read. 4 secondary bus prefetch disable r/w controls the bridges ability to prefetch during upstream memory read transactions. 0: the bridge prefetches and does not forward byte enable bits during upstream memory reads. 1: the bridge requests only 1 dword from the target and forwards read byte en able bits during upstream memory reads. reset to 0 5 live insertion mode r/w enables hardware control of transaction forwarding. 0: gpio[3] has no effect on the i/o, memory, and master enable bits 1: if gpio[3] is set to input mode, this bit enables gp io[3] to mask i/o enable, memory enable and master enable bits to 0. pi7c8150b will stop accepting i/o and memory transactions as a result. reset to 0 7:6 reserved r/o reserved. returns 0 when read. 8 chip reset r/wr controls the chip and secondary bus reset. 0: pi7c8150b is ready for operation 1: causes pi7c8150b to perform a chip reset reset to 0 10:9 test mode for all counters at p and s1 r/o controls the testability of the bridges internal counters. the bits are used for chip te st only. 00: all bits are exercised 01: byte 1 is exercised 10: byte 2 is exercised 11: byte 3 is exercised reset to 0 15:11 reserved r/o reserved. r eturns 0 when read. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 84 of 107 april 20 15 C revision 2.1 14.1.30 arbiter control register C offset 40h bit function type descript ion 24:16 arbiter control r/w each bit controls whether a secondary bus master is assigned to the high priority group or the low priority group. bits [24:16] correspond to request inputs s_req _l [8:0] respectively. bit 24 corresponds to s_req_l[8] bit 16 corresponds to s_req_l[0] 0: low priority 1: high priority reset to 0 25 priority of secondary interface r/w controls whether the secondary interface of the bridge is in the high priority group or the low priority group. 0: low priority 1: high prio rity reset to 0 31:26 reserved r/o reserved. r eturns 0 when read. 14.1.31 extended chip control register C offset 48h bit function type description 0 memory read flow through enable r/w controls ability to do memory read flow through 0: dis able flow through during a memory read transaction 1: enable flow through during a memory read transaction reset to 0 1 park r/w controls bus arbiters park function 0: park to last master 1: park to bridge reset to 0 2 downstream dynamic prefetch c ontrol r/w controls the downstream (p to s) memory read line and memory read multiple prefetching dynamic control 0: enable the downstream memory read line and memory read multiple prefetching dynamic control 1: disable the downstream memory read line an d memory read multiple prefetching dynamic control reset to 0 3 upstream dynamic prefetch control r/w controls the upstream (s to p) memory read line and memory read multiple prefetching dynamic control 0: enable the upstream memory read line and memory read multip le prefetching dynamic control 1: disable the upstream memory read line and memory read multiple prefetching dynamic control reset to 0 15:4 reserved r/o reserved. return s 0 when read. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 85 of 107 april 20 15 C revision 2.1 14.1.32 upstream memory control register C offset 48h bit function type d escription 16 upstream (s to p) memory base and limit enable r/w 0: upstream memory is the entire range except the down stream memory channel 1: upstream memory is confined to upstream memory base and limit (see offset 50 th and 54 th for upstream memory range) reset to 0 31:17 reserved r/o reserved. returns 0 when read. 14.1.33 secondary bus arbiter preemption control register C offset 4ch bit function type description 31:28 secondary bus arbiter preemption contorl r/w controls the nu mber of clock cycles after frame is asserted before preemption is enabled. 1xxx: preemption off 0000: preemption enabled after 0 clock cycles 0001: preemption enabled after 1 clock cycle 0010: preemption enabled after 2 clock cycles 0011: preemptio n enabled after 4 clock cycles 0100: preemption enabled after 8 clock cycles 0101: preemptio n enabled after 16 clock cycles 0110: preemption enabled after 32 c lock cycles 0111: preemption enabled after 64 c lock cycles reset to 0000 27:0 hot swap swi tch time slot register (15k pci clocks r/w default is 0003a98 14.1.34 upstream (s to p) memory base register C offset 50h bit function type description 3:0 64 bit addressing r/o 0: 32 bit addressing 1: 64 bit addressing reset to 1 15:4 upstream memory base a ddress r/w controls upstream memory base address. reset to 00000000h 14.1.35 upstream (s to p) memory limit register C offset 50h bit function type description 19:16 64 bit addressing r/o 0: 32 bit addressing 1: 64 bit addressing reset to 1 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 86 of 107 april 20 15 C revision 2.1 bit function type description 31:20 upstream m emory limit address r/w controls upstream memory limit address. reset to 000fffffh 14.1.36 upstream (s to p) memory base upper 32-bits register C offset 54h bit function type description 31:0 upstream memory base address r/w defines bits [63:32] of the upstre am memory base reset to 0 14.1.37 upstream (s to p) memory limit upper 32-bits register C offset 58h bit function type description 31:0 upstream memory limit address r/w defines bits [63:32] of the upstream memory limit reset to 0 14.1.38 p_serr_l event disable register C offset 64h bit function type description 0 reserved r/o reserved. returns 0 when read. 1 posted write parity error r/w controls pi7c8150b s ability to assert p_serr_l when it is unable to transfer any read data from the target after 2 24 attempts. 0: p_serr_l is asserted if this event occurs and the serr_l enable bit in the command register is set. 1: p_serr_l is not assert if this event occurs. reset to 0 2 posted write non - delivery r/w controls pi7c8150b s ability to assert p_ser r_l when it is unable to transfer delayed write data after 2 24 attempts. 0: p_serr_l is asserted if this event occurs and the serr_l enable bit in the command register is set 1: p_serr_l is not asserted if this event occurs reset to 0 3 target abort du ring posted write r/w controls pi7c8150b s ability to assert p_serr_l when it receives a target abort when attempting to deliver posted write data. 0: p_serr_l is asserted if this event occurs and the serr_l enable bit in the command register is set 1: p _serr_l is not asserted if this event occurs reset to 0 4 master abort on posted write r/w controls pi7c8150b s ability to assert p_serr_l when it receives a master abort when attempting to deliver posted write data. 0: p_serr# is asserted if this event occurs and the serr# enable bit in the command register is set 1: p_serr# is not asserted if this event occurs reset to 0 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 87 of 107 april 20 15 C revision 2.1 bit function type description 5 delayed write non - delivery r/w controls pi7c8150b s ability to assert p_serr# when it is unable to transfer delayed write data a fter 2 24 attempts. 0: p_serr_l is asserted if this event occurs and the serr_l enable bit in the command register is set 1: p_serr_l is not asserted if this event occurs reset to 0 6 delayed read C no data from target r/w controls pi7c8150b s ability t o assert p_serr_l when it is unable to transfer any read data from the target after 2 24 attempts. 0: p_serr_l is asserted if this event occurs and the serr_l enable bit in the command register is set 1: p_serr_l is not asserted if this event occurs rese t to 0 7 reserved r/o reserved. returns 0 when read. 14.1.39 gpio data and control register C offset 64h bit function type description 11:8 gpio output write - 1 - to - clear r/wc writing 1 to any of these bits drives the corresponding bit low on the gp io[3:0] bus if it is programmed as bidirectional. data is driven on the pci clock cycle following completion of the configuration write to this register. bit positions corresponding to gpio pins that are programmed as input only are not driven. writing 0 has no effect and will show last the last value written when read. reset to 0. 15:12 gpio output write - 1 - to - set r/ws writing 1 to any of these bits drives the corresponding bit high on the gpio[3:0] bus if it is programmed as bidirectional. data is dr iven on the pci clock cycle following completion of the configuration write to this register. bit positions corresponding to gpio pins that are programmed as input only are not driven. writing 0 has no effect and will show last the last value written whe n read. reset to 0. 19:16 gpio output enable write - 1 - to - clear r/wc writing 1 to and of these bits configures the corresponding gpio[3:0] pin as an input only. the output driver is tristated. writing 0 to this register has no effect and will reflect the last value written when read. reset to 0. 23:20 gpio output enable write - 1 - to - set r/ws writing 1 to and of these bits configures the corresponding gpio[3:0] pin as bidirectional. the output driver is enabled and drives the value set in the output data register (65h). writing 0 to this register has no effect and will reflect the last value written when read. reset to 0. 27:24 reserved r reserved. returns 0 when read. 31:28 gpio input data register r/o reads the state of the gpio[3:0] pins . the state is updated on the pci clock following a change in the gpio[3:0] pins. 14.1.40 secondary clock control register C offset 68h bit function type description 1:0 clock 0 disable r/w if either bit is 0, then s_clkout [0] is enabled. if both bits are 1, t hen s_clkout [0] is disabled. 3:2 clock 1 disable r/w if either bit is 0, then s_clkout [1] is enabled. if both bits are 1, then s_clkout [1] is disabled. 5:4 clock 2 disable r/w if either bit is 0, then s_clkout [2] is enabled. if both bits are 1, then s_clkout [2] is disabled. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 88 of 107 april 20 15 C revision 2.1 bit function type description 7:6 clock 3 disable r/w if either bit is 0, then s_clkout [3] is enabled. if both bits are 1, then s_clkout [3] is disabled. 8 clock 4 disable r/w if bit is 0, then s_clkout [4] is enabled. if bit is 1, then s_clkout [4] is disa bled and driven low. 9 clock 5 disable r/w if bit is 0, then s_clkout [5] is enabled. if bit is 1, then s_clkout [5] is disabled and driven low. 10 clock 6 disable r/w if bit is 0, then s_clkout [6] is enabled. if bit is 1, then s_clkout [6] is disabled and driven low. 11 clock 7 disable r/w if bit is 0, then s_clkout [7] is enabled. if bit is 1, then s_clkout [7] is disabled and driven low. 12 clock 8 disable r/w if bit is 0, then s_clkout [8] is enabled. if bit is 1, then s_clkout [8] is disabled and driven low. 13 clock 9 disable r/w if bit is 0, then s_clkout [9] is enabled. if bit is 1, then s_clkout [9] is disabled and driven low. 15:14 reserved ro reserved. returns 00 when read. 14.1.41 p_serr_l status register C offset 68h bit function type descripti on 16 address parity error r/wc 1: signal p_serr_l was asserted because an address parity error was detected on p or s bus. reset to 0 17 posted write data parity error r/wc 1: signal p_serr_l was asserted because a posted write data parity error was de tected on the target bus. reset to 0 18 posted write non - delivery r/wc 1: signal p_serr_l was asserted because the bridge was unable to deliver post memory write data to the target after 2 24 attempts. reset to 0 19 target abort during posted write r/wc 1: signal p_serr_l was asserted because the bridge received a target abort when delivering post memory write data. reset to 0. 20 master abort during posted write r/wc 1: signal p_serr_l was asserted because the bridge received a master abort when attem pting to deliver post memory write data reset to 0. 21 delayed write non - delivery r/wc 1: signal p_serr_l was asserted because the bridge was unable to deliver delayed write data after 2 24 attempts. reset to 0 22 delayed read C no data from target r/wc 1: signal p_serr_l was asserted because the bridge was unable to read any data from the target after 2 24 attempts. reset to 0. 23 delayed transaction master timeout r/wc 1: signal p_serr_l was asserted because a master did not repeat a read or write tra nsaction before master timeout. reset to 0. 14.1.42 port option register C offset 74h bit function type description 0 reserved r/o reserved. r eturns 0 when read. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 89 of 107 april 20 15 C revision 2.1 bit function type description 1 primary memr command alias enable r/w controls pi7c8150b s detection mechanism fo r matching memory read retry cycles from the initiator on the primary interface 0: exact matching for non - posted memory write retry cycles from initiator on the primary interface 1: alias memrl or memrm to memr for memory read retry cycles from the initi ator on the primary interface reset to 1 2 primary memw command alias enable r/w controls pi7c8150b s detection mechanism for matching non - posted memory write retry cycles from the initiator on the primary interface 0: exact matching for non - posted memo ry write retry cycles from initiator on the primary interface 1: alias memwi to memw for non - posted memory write retry cycles from initiator on the primary interface reset to 0 3 secondary memr command alias enable r/w controls pi7c8150b s detection mec hanism for matching memory read retry cycles from the initiator on the secondary 0: exact matching for memory read retry cycles from initiator on the secondary interface 1: alias memrl or memrm to memr for memory read retry cycles from initiator on the s econdary interface reset to 1 4 secondary memw command alias enable r/w controls pi7c8150b s detection mechanism for matching non - posted memory write retry cycles from the initiator on the primary interface 0: exact matching for non - posted memory write retry cycles from initiator on the secondary interface 1: alias memwi to memw for non - posted memory write retry cycles from initiator on the secondary interface reset to 0 5 primary memr line/multiple alias enable r/w 0: exact matching for memory read line/multiple retry cycle from initiator on primary interface 1: alias memrl to memrm or memrm to memrl for memory read retry cycle from initiator on primary interface reset to 1 6 secondary memr line/multiple alias enable r/w 0: exact matching for memo ry read line/multiple retry cycle from initiator on secondary interface 1: alias memrl to memrm or memrm to memrl for memory read retry cycle from initiator on secondary interface reset to 1 7 primary memwi command alias enable r/w controls pi7c8150bs detection mechanism for matching non - posted memory write and invalidate cycles from the initiator on the primary interface 0: when accepting memwi command at the primary interface, pi7c8150b converts memwi to memw command on the secondary interface 1: di sconnects memwi command at aligned cache line boundaries reset to 0 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 90 of 107 april 20 15 C revision 2.1 bit function type description 8 secondary memwi command alias enable r/w controls pi7c8150bs detection mechanism for matching non - posted memory write and invalidate cycles from the initiator on the secondary interfa ce 0: when accepting memwi command at the secondary interface, pi7c8150b converts memwi to memw command on the primary interface 1: disconnects memwi command at aligned cache line boundaries reset to 0 9 enable long request r/w controls pi7c8150b s abi lity to enable long requests for lock cycles 0: normal lock operation 1: enable long request for lock cycle reset to 0 10 enable secondary to hold request longer r/w controls pi7c8150b s ability to enable the secondary bus to hold requests longer. 0: internal secondary master will release req_l after frame_l assertion 1: internal secondary master will hold req_l until there is no transactions pending in fifo or until terminated by target reset to 1 11 enable primary to hold request longer r/w contr ols pi7c8150b s ability to hold requests longer at the primary port. 0: internal primary master will release req_l after frame_l assertion 1: internal primary master will hold req_l until there is no transactions pending in fifo or until terminated by t arget reset to 1 15:12 reserved r/o reserved. r eturns 0 when read. 14.1.43 retry counter register C offset 78h bit function type description 31:0 retry counter r/w holds the maximum number of attempts that pi7c8150b will try before reporting ret ry timeout. retry count set at 2 24 pci clocks. default is 0100 0000h. 14.1.44 secondary bus master timeout counter C offset 80h bit function type description 15:0 secondary timeout r/w there are 2 control settings for the secondary bus master timeout counter. bit[25] offset 3ch can set the counter to either 2 10 or 2 15 clocks. bit[15:0] offset 80h may control the granularity down to 1 pci clock (from 0h to ffffh). both controls will over - write each other, with the last write value being used for the initial value loaded into the timeout counter. the timeout counter will start after the last data (if less than a cache line) or the first cache line data (if more than one cache line) is completed to the bridge. once the timeout counter expires, the correspondi ng data in the buffer will be discarded. reset to 8000h. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 91 of 107 april 20 15 C revision 2.1 14.1.45 primary bus master timeout counter C offset 80h bit function type description 31:16 primary timeout r/w there are 2 control settings for the primary bus master timeout counter. bit[24] offset 3 ch can set the counter to either 2 10 or 2 15 clocks. bit[31:16] offset 80h may control the granularity down to 1 pci clock (from 0h to ffffh). both controls will over - write each other, with the last write value being used for the initial value loaded into the timeout counter. the timeout counter will start after the last data (if less than a cache line) or the first cache line data (if more than one cache line) is completed to the bridge. once the timeout counter expires, the corresponding data in the bu ffer will be discarded . reset to 8000h. 14.1.46 capability id register C offset b0h bit function type description 7:0 capability id r/o capability id for slot identification 00h: reserved 01h: pci power management (pcipm) 02h: accelerated graphics port (agp ) 03h: vital product data (vpd) 04h: slot identification (si) 05h: message signaled interrupts (msi) 06h: compact pci hot swap (chs) 07h C 255h: reserved reset to 04h 14.1.47 next pointer register C offset b0h bit function type description 15:8 next point er r/o n ext pointer =11100100: next pointer(e4h if hs_en=1) =00000000: next pointer(00h if hs_en=0) 14.1.48 slot number register C offset b0h bit function type description 20:16 expansion slot number r/w determines expansion slot number reset to 0 21 first i n chassis r/w first in chassis reset to 0 23:22 reserved r/o reserved. returns 0 when read. 14.1.49 chassis number register C offset b0h bit function type description 31:24 chassis number register r/w chassis number register. reset to 0 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 92 of 107 april 20 15 C revision 2.1 14.1.50 capability id register C offset dch bit function type description 7:0 enhanced capabilities id r/o read as 01h to indicate that these are power management enhanced capability registers. 14.1.51 next item pointer register C offset dch bit function type descript ion 15:8 next item pointer r/o p oints to slot number register ( b 0 h). 14.1.52 power management capabilities register C offset dch bit function type description 18:16 power management revision r/o read as 001 to indicate the device is compliant to revision 1.0 o f pci power management interface specifications. 19 pme# clock r/o read as 0 to indicate pi7c8150b does not support the pme# pin. 20 auxiliary power r/o read as 0 to indicate pi7c8150b does not support the pme# pin or an auxiliary power source. 21 devic e specific initialization r/o read as 0 to indicate pi7c8150b does not have device specific initialization requirements. 24:22 reserved r/o read as 0 25 d1 power state support r/o read as 0 to indicate pi7c8150b does not support the d1 power management s tate. 26 d2 power state support r/o read as 0 to indicate pi7c8150b does not support the d2 power management state. 31:27 pme# support r/o read as 0 to indicate pi7c8150b does not support the pme# pin. 14.1.53 power management data register C offset e0h bit f unction type description 1:0 power state r/w indicates the current power state of pi7c8150b . if an unimplemented power state is written to this register, pi7c8150b completes the write transaction, ignores the write data, and does not change the value of the field. writing a value of d0 when the previous state was d3 cause a chip reset without asserting s_reset_l 00: d0 state 01: not implemented 10: not implemented 11: d3 state reset to 0 7:2 reserved r/o read as 0 8 pme# enable r/o read as 0 as pi 7c8150b does not support the pme# pin. 12:9 data select r/o read as 0 as the data register is not implemented. 14:13 data scale r/o read as 0 as the data register is not implemented. 15 pme status r/o read as 0 as the pme# pin is not implemented. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 93 of 107 april 20 15 C revision 2.1 14.1.54 capability id register C offset e4h bit function type description 7:0 capability id r/o 00h: reserved. 01h: pci power management (pcipm) 02h: accelerated graphics port (agp) 03h: vital product data (vpd) 04h: slot identification (si) 05h: message signale d interrupts (msi) 06h: compact pci hot swap 07h - 255h: reserved default is 06h 14.1.55 next pointer register C offset e4h bit function type description 15:8 next pointer r/o end of pointer (00h) 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 94 of 107 april 20 15 C revision 2.1 15 bridge behavior a pci cycle is initiated by asserting the frame_l signal. in a bridge, there are a number of possibilities. those possibilities are summarized in the table below: 15.1 bridge actions for various cycle types initiator target response master on primary target on primary pi7c8150b does not respond. it detects this situation by decoding the address as well as monitoring the p_devsel_l for other fast and medium devices on the primary port. master on primary target on secondary pi7c8150b asserts p_devsel_l, terminates the cycle normally if it is able to be posted, otherwise return with a retry. it then passes the cycle to the appropriate port. when the cycle is complete on the target port, it will wait for the initiator to repeat the same cycle and end with normal termination. master on primary target not on primary nor secondary port pi7c8150b does not respond and the cycle will terminate as master abort. master on secondary target on the same secondary port pi7c8150b does not respond. master on secondary target on primary or the other secondary port pi7c8150b asserts s_devsel_l, terminates the cycle normally if it is able to be posted, otherwise returns with a retry. it then passes the cycle to the appropriate port. when cycle is complete on the target port, it will wait for the initiator to repeat the same cycle and end with normal termination. master on secondary target not on primary nor the other secondary port pi7c8150b does not respond. 15.2 abnormal termination (initiated by bridge master) 15.2.1 master abort master abort indicates that when pi7c815 0b acts as a master and receives no response (i.e., no target asserts devsel_l or s_devsel_l) from a target, the bridge de-asserts frame_l and then de-asserts irdy_l. 15.2.2 parity and error reporting parity must be checked for all addresses and write data. parity is defined on the p_par, and s_par signals. parity should be even (i. e. an even number of1s) across ad, cbe, and par. parity information on par is valid the cycle after ad and cbe are valid. for reads, even parity must be generated using the initiators cbe signals combined with the 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 95 of 107 april 20 15 C revision 2.1 read data. again, the par signal corresponds to read data from the previous data phase cycle. 15.2.3 reporting parity errors for all address phases, if a parity error is detected, the error should be reported on the p_serr_l signal by asserting p_serr_l for one cycle and then 3-stating two cycles after the bad address. p_serr_l can only be asserted if bit 6 and 8 in the command register are both set to 1. for write data phases, a parity error should be reported by asserting the p_perr_l signal two cycles after the data phase and should remain asserted for one cycle when bit 6 in the command register is set to a 1. the target reports any type of data parity errors during write cycles, while the master reports data parity errors during read cycles. detection of an address parity error will cause the pci- to -pci bridge target to not claim the bus (p_devsel_l remains inactive) and the cycle will then terminate with a master abort. when the bridge is acting as master, a data parity error during a read cycle results in the bridge master initiating a master abort. 15.2.4 secondary idsel mapping when pi7c8150b detects a type 1 configuration transaction for a device connected to the secondary, it translates the type 1 transaction to type 0 transaction on the downstream interface. type 1 configuration format uses a 5-bit field at p_ad[15:11] as a device number. this is translated to s_ad[31:16] by pi7c8150b. 16 ieee 1149.1 compatible jtag controller an ieee 1149.1 compatible test access port (tap) controller and associated tap pins are provided to support boundary scan in pi7c8150b for board-level continuity test and diagnostics. the tap pins assigned are tck, tdi, tdo, tms and trst_l. all digital input, output, input/output pins are tested except tap pins. the ieee 1149.1 test logic consists of a tap controller, an instruction register, and a group of test data registers including bypass and boundary scan registers. the tap controller is a synchronous 16-state machine driven by the test clock (tck) and the test mode select (tms) pins. an independent power on reset circuit is provided to ensure the machine is in test_logic_reset state at power-up. the jtag signal lines are not active when the pci resource is operating pci bus cycles. pi7c8150b implements 3 basic instructions: bypass, sample/preload, and extest. 16.1 boundary scan architecture boundary-scan test logic consists of a boundary-scan register and support logic. these are accessed through a test access port (tap). the tap provides a simple serial interface that allows all processor signal pins to be driven and/or sampled, thereby providing direct control and monitoring of processor pins at the system level. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 96 of 107 april 20 15 C revision 2.1 this mode of operation is valuable for design debugging and fault diagnosis since i t permits examination of connections not normally accessible to the test system. the following subsections describe the boundary-scan test logic elements: tap pins, instruction register, test data registers and tap controller. figure 16 -1 illustrates how these pieces fit together to form the jtag unit. figure 16 -1 test access port block diagram 16.1.1 tap pins the pi7c8150b s tap pins form a serial port composed of four input conne ctions (tms, tck, trst_l and tdi) and one output connection (tdo). these pins are described in table 16 -1 . the tap pins provide access to the instruction register and the test data registers. 16.1.2 instruction register the instruction register (ir) holds instruction codes. these codes are shifted in through the test data input (tdi) pin. the instruction codes are used to select the specific test operation to be performed and the test data register to be accessed. the instruction register is a parallel-loadable, master/slave-configured 5-bit wide, serial- shift register with latched outputs. data is shifted into and out of the ir serially through the tdi pin clocked by the rising edge of tck. the shifted-in instruction becomes active upo n latching from the master stage to the slave stage. at that time the ir outputs along with the tap finite state machine outputs are decoded to select and control the test data register selected by that instruction. upon latching, all actions caused by any previous instructions terminate. the instruction determines the test to be performed, the test data register to be accessed, or both. the ir is two bits wide. when the ir is selected, the most significant bit is connected to tdi, and the least significant bit is connected to tdo. the value presented on the tdi pin is shifted into the ir on each rising edge of tck. the tap controller captures fixed 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 97 of 107 april 20 15 C revision 2.1 parallel data (1101 binary). when a new instruction is shifted in through tdi, the value 1101(binary) is always shifted out through tdo, least significant bit first. this helps identify instructions in a long chain of serial data from several devices. upon activation of the trst_l reset pin, the latched instruction asynchronously changes to the id code instruction. when the tap controller moves into the test state other than by reset activation, the opcode changes as tdi shifts, and becomes active on the falling edge of tck. 16.2 boundary scan instruction set the pi7c8150b supports three mandatory boundary-scan instructions (bypass, sample and extest). the table shown below lists the pi7c8150b s boundary -scan instruction codes. table 16 -1. tap pins instruction / requisite opcode (binary) description extest ieee 1149 .1 required 00000 extest initiates testing of external circuitry, typically board - level interconnects and off chip circuitry. extest connects the boundary - scan register between tdi and tdo. when extest is selected, all output signal pin values are driven by values shifted into the boundary - scan register and may change only of the falling edge of tck. also, when extest is selected, all system input pin states must be loaded into the boundary - scan register on the rising - edge of tck. sample ieee 1149.1 req uired 0001 sample performs two functions: ? a snapshot of the sample instruction is captured on the rising edge of tck without interfering with normal operation. the instruction causes boundary - scan register cells associated with outputs to sample the value being driven. ? on the falling edge of tck, the data held in the boundary - scan cells is transferred to the slave register cells. typically, the slave latched data is applied to the system outputs via the extest instruction. intscan 00010 enable internal s can test clamp 00100 clamp instruction allows the state of the signals driven from component pins to be determined from the boundary - scan register while the bypass register is selected as the serial path between tdi and tdo. the signal driven from the co mponent pins will not change while the clamp instruction is selected. bypass 11111 bypass instruction selects the one - bit bypass register between tdi and tdo pins. 0 (binary) is the only instruction that accesses the bypass register. while this instruct ion is in effect, all other test data registers have no effect on system operation. test data registers with both test and system functionality performs their system functions when this instruction is selected. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 98 of 107 april 20 15 C revision 2.1 16.3 tap test data registers the pi7c8150b co ntains two test data registers (bypass and boundary-scan). each test data register selected by the tap controller is connected serially between tdi and tdo. tdi is connected to the test data registers most significant bit. tdo is connected to the least significant bit. data is shifted one bit position within the register towards tdo on each rising edge of tck. while any register is selected, data is transferred from tdi to tdo without inversion. the following sections describe each of the test data registers. 16.4 bypass register the required bypass register, a one-bit shift register, provides the shortest path between tdi and tdo when a bypass instruction is in effect. this allows rapid movement of test data to and from other components on the board. this path can be selected when no test operation is being performed on the pi7c8150b. 16.5 boundary-scan register the boundary-scan register contains a cell for each pin as well as control cells for i/o and the high-impedance pin. table table 16 -1 shows the bit order of the pi7c8150b boundary-scan register. all table cells that contain control select the direction of bi -directional pins or high-impedance output pins. when a 1 is loaded into the control cell, the associated pin(s) are hi gh - impedance or selected as output. the boundary-scan register is a required set of serial-shiftable register cells, configured in master/slave stages and connected between each of the pi7c8150b s pins and on -chip system logic. the vdd, gnd, and jtag pins are not in the boundary-scan chain. the boundary-scan register cells are dedicated logic and do not have any system function. data may be loaded into the boundary-scan register master cells from the device input pins and output pin-drivers in parallel by the mandatory sample and extest instructions. parallel loading takes place on the rising edge of tck. data may be scanned into the boundary-scan register serially via the tdi serial input pin, clocked by the rising edge of tck. when the required data has been loaded into the master-cell stages, it can be driven into the system logic at input pins or onto the output pins on the falling edge of tck state. data may also be shifted out of the boundary-scan register by means of the tdo serial output pin at the falling edge of tck. 16.6 tap controller the tap (test access port) controller is a 4-state synchronous finite state machine that controls the sequence of test logic operations. the tap can be controlled via a bus master. the bus master can be either automatic test equipment or a component (i.e., pld) that interfaces to the tap. the tap controller changes state only in response to a rising edge of tck. the value of the test mode state (tms) input signal at a rising edge of tck controls the sequence of state changes. the tap controller is initialized after power-up by applying 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 99 of 107 april 20 15 C revision 2.1 a low to the trst_l pin. in addition, the tap controller can be initialized by applying a high signal level on the tms input for a minimum of five tck periods. for greater detail on the behavior of the tap controller, test logic in each controller state and the state machine and public instructions, refer to the ieee 1149.1 standard test access port and boundary-scan architecture document (available from the ieee). table 16 -2. jtag boundary register order boundary - scan register number pin name pin number type 0 s_ad[0] 137 bidir 1 s_ad[1] 138 bidir 2 s_ad[2] 140 bidir 3 s_ad[3] 141 bidir 4 s_ad[4] 143 bidir 5 s_ad[5] 144 bidir 6 s_a d[6] 146 bidir 7 s_ad[7] 147 bidir 8 s_cbe[0] 149 bidir 9 s_ad[8] 150 bidir 10 s_ad[9] 152 bidir 11 s_m66en 153 output 12 s_ad[10] 154 bidir 13 s_ad[11] 159 bidir 14 s_ad[12] 161 bidir 15 s_ad[13] 162 bidir 16 s_ad[14] 164 bidir 17 s_ad[15] 165 bidir 18 control 19 s_cbe[1] 167 bidir 20 s_par 168 bidir 21 s_serr_l 169 input 22 s_perr_l 171 bidir 23 s_lock_l 172 bidir 24 s_stop_l 173 bidir 25 control 26 s_devsel_l 175 bidir 27 s_trdy_l 176 bidir 28 s_irdy_l 177 bidir 29 s_frame_l 17 9 bidir 30 s_cbe[2] 180 bidir 31 s_ad[16] 182 bidir 32 s_ad[17] 183 bidir 33 s_ad[18] 185 bidir 34 s_ad[19] 186 bidir 35 s_ad[20] 188 bidir 36 s_ad[21] 189 bidir 37 s_ad[22] 191 bidir 38 s_ad[23] 192 bidir 39 s_cbe[3] 194 bidir 40 s_ad[24] 195 b idir 41 s_ad[25] 197 bidir 42 s_ad[26] 198 bidir 43 s_ad[27] 200 bidir 44 s_ad[28] 201 bidir 45 s_ad[29] 203 bidir 46 s_ad[30] 204 bidir 47 control 48 s_ad[31] 206 bidir 49 s_req_l[0] 207 input 50 s_req_l[1] 2 input 51 s_req_l[2] 3 input 52 s _req_l[3] 4 input 53 s_req_l[4] 5 input 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 100 of 107 april 20 15 C revision 2.1 boundary - scan register number pin name pin number type 54 s_req_l[5] 6 input 55 s_req_l[6] 7 input 56 s_req_l[7] 8 input 57 s_req_l[8] 9 input 58 s_gnt_l[0] 10 output 59 s_gnt_l[1] 11 output 60 control 61 s_gnt_l[2] 13 output 62 s_gnt_l[3] 14 output 63 s_gnt _l[4] 15 output 64 s_gnt_l[5] 16 output 65 s_gnt_l[6] 17 output 66 s_gnt_l[7] 18 output 67 s_gnt_l[8] 19 output 68 s_clkin 21 input 69 s_reset_l 22 output 70 s_cfn_l 23 input 71 gpio[3] 24 bidir 72 gpio[2] 25 bidir 73 gpio[1] 27 bidir 74 gpio[0] 28 bidir 75 s_clkout[0] 29 output 76 s_clkout[1] 30 output 77 control 78 s_clkout[2] 32 output 79 s_clkout[3] 33 output 80 s_clkout[4] 35 output 81 s_clkout[5] 36 output 82 s_clkout[6] 38 output 83 s_clkout[7] 39 output 84 s_clkout[8] 41 outpu t 85 s_clkout[9] 42 output 86 p_reset_l 43 input 87 bpcce 44 input 88 p_clk 45 input 89 p_gnt_l 46 input 90 p_req_l 47 output 91 control 92 p_ad[31] 49 bidir 93 p_ad[30] 50 bidir 94 p_ad[29] 55 bidir 95 p_ad[28] 57 bidir 96 p_ad[27] 58 bidir 97 p_ad[26] 60 bidir 98 p_ad[25] 61 bidir 99 p_ad[24] 63 bidir 100 p_cbe[3] 64 bidir 101 p_idsel 65 input 102 p_ad[23] 67 bidir 103 p_ad[22] 68 bidir 104 p_ad[21] 70 bidir 105 p_ad[20] 71 bidir 106 p_ad[19] 73 bidir 107 p_ad[18] 74 bidir 108 p_ ad[17] 76 bidir 109 p_ad[16] 77 bidir 110 control 111 p_cbe[2] 79 bidir 112 p_frame_l 80 bidir 113 p_irdy_l 82 bidir 114 p_trdy_l 83 bidir 115 p_devsel_l 84 bidir 116 p_stop_l 85 bidir 117 control 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 101 of 107 april 20 15 C revision 2.1 boundary - scan register number pin name pin number type 118 p_lock_l 87 input 119 p_perr_l 88 bidir 120 p_serr_l 89 output 121 p_par 90 bidir 122 p_cbe[1] 92 bidir 123 p_ad[15] 93 bidir 124 p_ad[14] 95 bidir 125 p_ad[13] 96 bidir 126 p_ad[12] 98 bidir 127 p_ad[11] 99 bidir 128 p_ad[10] 101 bidir 129 p_m66en 102 input 130 p_ad[9] 107 bidir 131 p_ad[8] 109 bidir 132 p_cbe[0] 110 bidir 133 p_ad[7] 112 bidir 134 p_ad[6] 113 bidir 135 p_ad[5] 115 bidir 136 p_ad[4] 116 bidir 137 p_ad[3] 118 bidir 138 p_ad[2] 119 bidir 139 p_ad[1] 121 bidir 140 p_ad[0] 122 bidir 141 control 142 cfg66 125 input 143 msk_in 126 input 17 electrical and timing specifications 17.1 maximum ratings (above which the useful life may be impaired. for user guidelines, not tested). storage temperature - 65 ? c to 150 ? c ambient temperature with power applied C pi7c8150b 0 ? c to 85 ? c ambient temperature with power applied C pi7c8150bi - 40 ? c to 85 ? c supply voltage to ground potentials ( av cc and v dd only) - 0.3v to 3.6v voltage at input pins - 0.5v to 5.5 v note: stresses greater than those listed under maximum ratings may cause permanent damage to the device. this is a stress rating only and functional operation of the device at these or any conditions above those indicated in the operational sections of this specification is not implied. exposure to absolute maximum rating conditions for extended periods of time may affect reliability. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 102 of 107 april 20 15 C revision 2.1 17.2 dc specifications symbol parameter condition min. max. units notes v dd , av cc supply voltage 3 3.6 v v ih input high voltage 0.5 v dd v dd + 0.5 v 3, 4 v il input low voltage - 0.5 0.3 v dd v 3, 4 v ih cmos input high voltage 0.7 v dd v dd + 0.5 v 1, 4 v il cmos input low voltage - 0.5 0.3 v dd v 1, 4 v ipu input pull - up voltage 0.7 v dd v 3 i il input leakage current 0 < v in < v dd ? 10 ? a 3 v oh output high voltage i out = - 500 ? a 0.9v dd v 3 v ol output low voltage i out = 1500 ? a 0.1 v dd v 3 v oh cmos output high voltage i out = - 500 ? a v dd C 0.5 v 2 v ol cmos output low voltage i out = 1500 ? a 0.5 v 2 c in input pin capacitance 10 pf 3 c clk clk pin capacitance 5 12 pf 3 c idsel idsel pin capa citance 8 pf 3 l pin pin inductance 20 nh 3 notes: 1. cmos input pins: s_cfn_l, tck, tms, tdi, trst_l, scan_en, scan_tm_l 2. cmos output pin: tdo 3. pci pins: p_ad[31:0], p_cbe[3:0], p_par, p_frame_l, p_irdy_l, p_trdy_l, p_devsel_l, p_stop_l, p_lock_l, pidsel_l, p_perr_l, p_serr_l, p_req_l, p_gnt_l, p_reset_l, s_ad[31:0], s_cbe[3:0], s_par, s_frame_l, s_irdy_l, s_trdy_l, s_devsel_l, s_stop_l, s_lock_l, s_perr_l, s_serr_l, s_req[7:0]_l, s_gnt[7:0]_l, s_reset_l, s_en, hsled, hs_sw_l, hs_en, enum_l. 4 . v dd is in reference to the v dd of the input device. 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 103 of 107 april 20 15 C revision 2.1 17.3 ac specifications figure 17 -1 pci signal timing measurement conditions 66 mhz 33 mhz symbol parameter min. max. min. max. units tsu input setup time to clk C bused signals 1,2,3 3 - 7 - ns tsu(ptp) input setup time to clk C point - to - point 1,2,3 5 - 10, 12 4 - th input signal hold time from clk 1,2 0 - 0 - tval clk to signal valid delay C bused signals 1,2,3 2 6 2 11 tval(ptp) clk to si gnal valid delay C point - to - point 1,2,3 2 6 2 12 ton float to active delay 1,2 2 - 2 - toff active to float delay 1,2 - 14 - 28 1. see figure 17 -1 pci signal timing measurement conditions. 2. all primary interface signals are synchronized to p_clk. all secondary interface signals are synchronized to s_clkout. 3. point- to -point signals are p_req_l, s_req_l[7:0], p_gnt_l, s_gnt_l[7:0], hsled, hs_sw_l, hs_en, and enum_l. bused signals are p_ad, p_bde_l, p_par, p_perr_l, p_serr_l, p_frame_l, p_irdy_l, p_trdy_l, p_lock_l, p_devsel_l, p_stop_l, p_idsel, s_ad, s_cbe_l, s_par, s_perr_l, s_serr_l, s_frame_l, s_irdy_l, s_trdy_l, s_lock_l, s_devsel_l, and s_stop_l. 4. req_l signals have a setup of 12 and gnt_l signals have a setup of 10. 17.4 66mhz timing symbol parameter condition min. max. units t skew skew among s_clkout[9:0] 0 0.250 ns t delay delay between pclk and s_clkout[9:0] 20pf load 3.14 5.07 t cycle p _ clk, s_clkout[9:0] cycle time 15 30 t high p _ clk, s_clkout[9:0] high time 6 t low p _ clk, s_clkout[9:0] low time 6 17.5 33mhz timing 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 104 of 107 april 20 15 C revision 2.1 symbol parameter condition min. max. units t skew skew among s_clkout[9:0] 0 0.250 ns t delay delay between pclk and s_clkout[9:0] 20pf load 3.14 5.07 t cycle p _ clk, s_clkout[9:0] cycle time 30 t high p _ clk, s_clkout[9:0] high time 11 t low p _ clk, s_clkout[9:0] low time 11 17.6 power consumption parameter typical units power consumption at 66mhz 1. 68 w supply current, i cc 51 0 ma 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 105 of 107 april 20 15 C revision 2.1 18 package information 18.1 208-pin fqfp package diagram figure 18 -1 208-pin fqfp package outline 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 106 of 107 april 20 15 C revision 2.1 18.2 256-ball pbga package diagram figure 18 -2 256-pin pbga package outline thermal characteristics can be found on the web: http://www.pericom.com/packaging/mechanicals.php 18.3 part number ordering information part number speed pin C package temperature pi7c8150b ma 66 mhz 208 C fqfp 0 c to 8 5c pi7c8150b nd 66 mhz 256 C pbga 0 c to 85c pi7c8150bma - 33 33 mhz 208 C fqfp 0c to 85c pi7c8150bnd - 33 33 mhz 256 C pbga 0c to 85c pi7c8150bmae 66 mhz 208 C fqfp (pb - free & green ) 0c to 85c pi7c8150bnde 66 mhz 256 C pbga (pb - free & green ) 0c t o 85c pi7c8150bmai 66 mhz 208 C fqfp - 40c to 85c pi7c8150bndi 66 mhz 256 C pbga - 40c to 85c pi7c8150bmai - 33 33 mhz 208 C fqfp - 40c to 85c pi7c8150bndi - 33 33 mhz 256 C pbga - 40c to 85c pi7c8150bmaie 66 mhz 208 C fqfp (pb - free & green ) - 40c to 85c pi7c8150bndie 66 mhz 256 C pbga (pb - free & green ) - 40c to 85c 15-0048
pi7c8150b asynchronous 2-port pci- to -pci bridge page 107 of 107 april 20 15 C revision 2.1 notes: 15-0048


▲Up To Search▲   

 
Price & Availability of PI7C8150BMAI-33

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X